我正在构建一个 Outlook 2010 插件以将其与某些业务软件集成并捕获 ItemSend 事件。我检查它是否是 MailItem,如果是,我调用 SaveAs 函数将其作为 .msg 保存到文件系统(在用户临时文件夹中)。
void Application_ItemSend(object Item, ref bool Cancel)
{
if(Item is Outlook.MailItem)
{
Outlook.MailItem mailitem = (Outlook.MailItem)Item;
string filename = "somefilename.msg";
string path = System.IO.Path.GetTempPath();
string fullPathName = path+filename;
mailitem.SaveAs(fullPathName, Outlook.OlSaveAsType.olMSG);
}
}
我继续阅读文件内容并使用 web 服务将文件发送到服务器。一切正常。
我遇到的问题是,如果我打开它保存的文件,然后 Outlook 将其作为仍在撰写的消息打开,用户可以很容易地再次单击“发送”按钮。
有没有办法标记该项目在保存之前已发送,以便在它作为可读电子邮件而不是组合电子邮件打开之后打开?