使用多个 Outlook 帐户时,Outlook API GetItemFromID() 失败并出现错误 "Could not open the item.Try again."

Outlook API GetItemFromID() fails with error "Could not open the item.Try again." when using multiple outlook accounts

我正在使用来自同一交换服务器(即同一域)的两个 Outlook 帐户。我们有一个 outlook 插件,我们用它来将一些电子邮件从 outlook 存档到外部 web 应用程序。在撰写新邮件时,可以将一些文件从外部应用程序附加到使用插件撰写的邮件中。 现在,当我在 Outlook 上拥有一个帐户时,一切都完美无缺。但是在配置另一个帐户并尝试从辅助帐户执行相同操作后,outlook 给出错误:

Outlook Initiator exception: System.Runtime.InteropServices.COMException (0x80040107): Could not open the item. Try again. at Microsoft.Office.Interop.Outlook.NameSpaceClass.GetItemFromID(String EntryIDItem, Object EntryIDStore)

我试图深入研究代码,发现对 GetItemFromID() 的调用给出了如上所示的异常。

object item = ns.GetItemFromID(objectID, storeId);

不同账户第一个参数objectID(即EntryIDItem)不同,第二个参数storeId相同

我还尝试使用反汇编程序查看方法 GetItemFromID() 的主体,但该方法被定义为外部方法,这意味着它在当前程序集之外定义为非托管代码。

试图在 Whosebug 上搜索任何类似的东西,但没有成功。有人可以帮我解决这个问题吗?

尽量只保留第一个参数。 EntryIDStore 参数是可选的。有关详细信息,请参阅 NameSpace.GetItemFromID

请注意,当项目移动到另一个商店时,条目 ID 会发生变化,例如,从您的收件箱到 Microsoft Exchange Server public 文件夹,或从一个个人文件夹 (.pst) 文件到另一个.pst 文件。解决方案不应依赖于 EntryID 属性 是唯一的,除非项目不会被移动。