Outlook API GetItemFromID()失败,返回错误“”;无法打开项目.请重试";使用多个out

本文关键字:重试 项目 quot out 失败 GetItemFromID API 返回 Outlook 错误 | 更新日期: 2023-09-27 18:29:32

我使用来自同一exchange服务器(即同一域)的两个outlook帐户。我们有一个outlook插件,用于将outlook中的一些电子邮件存档到外部web应用程序。在撰写新邮件时,可以使用外接程序将外部应用程序中的一些文件附加到正在撰写的邮件中。现在,当我对前景有一个单一的账户时,一切都很顺利。但在配置另一个帐户并尝试从二级帐户执行相同操作后,outlook给出错误:

Outlook启动器异常:System.Runtime.InteropServices.COMException(0x80040107):未能打开项目。请重试。在Microsoft.Office.Interop.Outlook.NameSpaceClass.GetItemFromID(字符串条目IDItem,对象条目IDStore)

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

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

不同帐户的第一个参数objectID(即EntryIDItem)不同,但第二个参数storeId相同。

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

我试着在stackoverflow上搜索类似的东西,但没有成功。有人能帮我吗?

Outlook API GetItemFromID()失败,返回错误“”;无法打开项目.请重试";使用多个out

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

请注意,当项目移动到另一个存储区时,条目ID会发生更改,例如,从收件箱移动到Microsoft Exchange Server公用文件夹,或从一个个人文件夹(.pst)文件移动到另个.pst文件。除非不会移动项目,否则解决方案不应依赖于EntryID属性的唯一性。