从.msg文件打开为MailItem创建RDOMail

时间:2012-06-26 10:15:15

标签: c# vsto outlook-addin outlook-2003 outlook-redemption

是否有办法为与.msg文件打开的Outlook邮件对应的RDOMail创建MailItem个实例?

我通常的方法是从Inspector获取CurrentItem,将其转换为MailItem,检索其EntryIDStoreID值,最后加载它来自RDOSessionGetMessageFromID方法。

但是,对于从.msg打开的消息,EntryID属性返回null。还有另一种方法吗?我假设我可以使用GetMessageFromMsgFile方法,但如何从MailItem检索邮件的完整路径?

P.S。理想情况下,该解决方案应与Outlook 2003对象模型一起使用。

1 个答案:

答案 0 :(得分:1)

你可以在这里做两种方法......

  1. 使用_MailItem.SaveAs()MailItem保存到磁盘。然后使用GetMessageFromMsgFile
  2. MailItem保存到Folder(商店)以保留它,并为其EntryIDStoreID。使用MailItem.Save()MailItem.Move(tempFolder)将MSG保留到文件夹中。我通常使用hidden folder for this storage swap。您需要在启动时或定期清除此交换文件夹( Outlook具有延迟锁定,因此您最好使用try / catches )。