0

当我从 Windows 搜索索引电子邮件项目中提取 EntryID 时,某些 EntryID 总是以零开头,例如

000000005559804AB84A6E49A3EBDF11D66E111724A33D00 000000005559804AB84A6E49A3EBDF11D66E111744A03D00

我可以提供带有 entryID 作为单个参数的调用 NameSpace.GetEntryFromID 并打开邮件项

EntryID 不以零开头的地方,例如

EF0000005DF0733903ACFB4A90E9F84DF839CED8A42D5300 EF0000005DF0733903ACFB4A90E9F84DF839CED824E75200

电子邮件来自不同的邮箱并使用这些字符串作为单个参数调用 NameSpace.GetEntryFromID 会给出消息未找到错误,可能是因为不同邮箱的 StoreID 不是默认值。我可以从 Windows 搜索 URL 返回的 EntryID 字符串中提取 StoreID,作为 GetEntryFromID 的第二个参数传递吗?

4

1 回答 1

0

我想问题的原因不是商店 ID。每个商店都有自己的 ID。即使您尝试在 Outlook 中的商店之间移动项目,也可以更改 EntryID 属性的值。以下是 MSDN 对 EntryID 属性的说明:

当在其商店中创建项目时,MAPI 商店提供程序会分配一个唯一的 ID 字符串。因此,在保存或发送 Microsoft Outlook 项目之前,不会为该项目设置 EntryID 属性。当项目被移动到另一个存储区时,EntryID 会发生变化,例如,从您的收件箱移动到 Microsoft Exchange Server 公用文件夹,或从一个个人文件夹 (.pst) 文件移动到另一个 .pst 文件。

无论如何,如果您不指定 StoreID,GetItemFromID 将搜索默认消息存储。

我可以从 Windows 搜索 URL 返回的 EntryID 字符串中提取 StoreID,作为 GetEntryFromID 的第二个参数传递吗?

没有。相反,您可以获取由 Folder 类表示的Parent对象并使用StoreID属性。

于 2015-03-28T03:54:46.087 回答