获取outlook文件夹的PR_SEARCH_KEY

时间:2018-01-21 16:28:48

标签: vsto outlook-addin

我在StackOverflow上看到number of answers建议在VSTO中使用PR_SEARCH_KEY以这种方式获取Outlook.MailItem(以及可能是Outlook.Folder)的唯一标识符(对于Outlook 2007 - 2016):

Folder.PropertyAccessor.BinaryToString(Folder.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x300B0102");

但是,这会引发COMException(0x8004010F):

  

属性“http://schemas.microsoft.com/mapi/proptag/0x300B0102”是   未知或无法找到。

从下面的答案看来,这似乎无关紧要,但我尝试在网络浏览器中打开http://schemas.microsoft.com/mapi/proptag/0x300B0102,导致

  

您要查找的资源已被删除,名称已有   已更改,或暂时无法使用。

我应该使用不同的DASL属性标记吗?这些天有不同的方式获得PR_SEARCH_KEY吗?是否有替换PR_SEARCH_KEY的其他唯一标识符?

使用OutlookSpy查看文件夹,我看到以下内容 - 没有PR_SEARCH_KEY ......这是我第一次使用OutlookSpy,所以我无法判断这是否可疑。

enter image description here

1 个答案:

答案 0 :(得分:1)

这不是URL,这是DASL属性标记。在您的情况下,DASL名称只是引用值为0x300B0102的MAPI属性标记 查看http://www.dimastr.com/redemption/utils.htm#xmapi以了解有关MAPI属性的信息。您可能还想使用OutlookSpy在Outlook中查看各种MAPI对象(单击IMAPIFolder,IMessage等)

话虽如此,我从来没有看到消息或文件夹中缺少该属性。如果单击IMAPIFolder,您是否在OutlookSpy中看到该文件夹​​的PR_SEARCH_KEY?它是什么类型的消息存储?