2012-01-10 70 views
1

我建立一个Outlook插件2010将其与一些商业软件整合,并被困在ItemSend事件之前发送。我检查它是否是一个的MailItem,如果是我所说的另存为功能将其保存为一个的.msg文件系统(在用户临时文件夹)。设置一个的MailItem作为调用Outlook中加载项另存为用C#

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); 
    } 
} 

我继续阅读文件内容并使用webservices将文件发送到服务器。它一切正常。

我的问题是,如果我去打开它保存的文件,然后Outlook打开它作为一个消息仍然构成及用户可以很容易地再次单击发送按钮。

有没有一种方法来标志,它被保存前的项目已被送往所以当事实后打开它打开作为电子邮件读取,而不是在构图电子邮件?

回答

1

看看this post(以及附加的页面上的最后的答案),这可能会帮助你。

(利用ItemAdd事件)

+0

所以抓住它,因为它被移动到已发送的邮件,然后保存呢?我没有想到这一点。谢谢。 :) – Tim 2012-01-10 22:25:00

+0

@Tim不客气!请让我知道它是否有效:-) – 2012-01-11 07:03:30

+0

它工作得很好。再次感谢。 – Tim 2012-01-19 00:42:14

相关问题