【问题标题】:Unable to SaveAs MailItem as msg file using third party application无法使用第三方应用程序将 MailItem 另存为 msg 文件
【发布时间】:2022-01-09 15:13:21
【问题描述】:

我有用于 Outlook 的 vsto 插件。在我的插件中,有一个功能可以在本地保存邮件。此功能在后台自动运行。为了实现这个功能,我开发了一个后台应用程序。在这个应用程序中,我会将电子邮件保存在一个确定的文件夹中。这个附加组件在我的电脑上运行良好,但在保存电子邮件时会遇到一些客户面临的问题。根据日志文件,我检查了当我尝试保存电子邮件时会生成此错误。

操作中止(HRESULT 异常:0x80004004 (E_ABORT))

在发布此博客之前,我尝试使用 Outlook 获取新邮件。应用程序对象,但问题仍未解决。

谁能帮我们解决这个问题?

谢谢

【问题讨论】:

    标签: c# outlook vsto outlook-addin


    【解决方案1】:

    不能从 Outlook.exe 进程地址空间中的辅助线程使用 Outlook 对象模型。您可以从外部进程中的辅助线程使用它,但无论如何调用都将被编组到主 Outlook 线程。进程内没有封送处理,因此会出现错误。

    您的选项是扩展 MAPI(仅限 C++ 或 Delphi)或Redemption(可用于任何语言)。在后一种情况下,您可以将Namespace.MAPIOBJECTMailItem.EntryID 属性的值保存在主线程上的单独变量中,并在辅助线程上创建RDOSession 对象的实例,将其MAPIOBJECT 属性设置为保存在主线程上的值,然后使用RDOSession.GetMessageFromID打开消息,然后调用RDOMail.SaveAs(..., olMsg)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 2014-12-19
      相关资源
      最近更新 更多