我正在使用 VC/ATL 编写 Outlook 插件。这个特定的插件接收选定的电子邮件并将它们写入磁盘。它还将所有关联的附件写入磁盘。然后,我们将所有内容读入 Outlook 之外的应用程序。
使用 Outlook 对象模型,这非常简单,因为 _MailItem 和 Attachment 都有 SaveAs 方法。当附件本身是嵌入的电子邮件时,问题就出现了,我们也希望将其拆分并保存为单独的文件。
在理想情况下,我可以查询 _MailItem 接口的附件,并像处理选择的正常部分一样处理它。但 QueryInterface 返回“无接口”。
我需要一个通过 Outlook 2010 与 Outlook XP (2002) 一起使用的解决方案。我知道在 Outlook 2007 中,应用程序对象上有一个方法 (CreateItemFromTemplate),它允许我从磁盘上保存的消息中获取 MailItem,但是不适用于 Outlook XP / 2003。我还需要完整的发件人/收件人信息。
我也知道第 3 方赎回库可以使用扩展 MAPI 做到这一点。但是,我们试图避免使用 3rd 方库。