Outlook 如何将msExchArchiveGUID传递给IMAPISession:OpenMsgStore以访问存档邮箱

Outlook 如何将msExchArchiveGUID传递给IMAPISession:OpenMsgStore以访问存档邮箱,outlook,office365,mapi,outlook-2013,Outlook,Office365,Mapi,Outlook 2013,我正在尝试使用Outlook MAPI访问用户邮箱和存档邮箱。Outlook版本为2013年。用户的邮箱和存档都位于O365 Exchange Online中 我可以访问用户邮箱。但是,访问用户存档邮箱失败。 我有用户的电子邮件地址和存档邮箱的存档GUID。 请有人帮助我了解如何将用户邮箱的存档GUID传递给IMAPISession:OpenMsgStore 谢谢, Pranay您需要从自动发现XML类型==存档中检索旧版DN和服务器信息,然后使用IExchangeManageStore::Cr

我正在尝试使用Outlook MAPI访问用户邮箱和存档邮箱。Outlook版本为2013年。用户的邮箱和存档都位于O365 Exchange Online中 我可以访问用户邮箱。但是,访问用户存档邮箱失败。 我有用户的电子邮件地址和存档邮箱的存档GUID。 请有人帮助我了解如何将用户邮箱的存档GUID传递给IMAPISession:OpenMsgStore

谢谢,
Pranay

您需要从自动发现XML类型==存档中检索旧版DN和服务器信息,然后使用IExchangeManageStore::CreateStoreEntryID以与打开代理邮箱相同的方式构造存储条目id。

谢谢@Dmitry Streblechenko。我能够使用自动发现XML查找遗留DN和服务器名称。旧版DN包含附加在末尾的存档guid/guid=。。。。CreateStoreEntryID需要服务器名和邮箱名作为参数。我还有两个问题:1。我是否需要将从Autodiscover XML和LegacyDN获得的服务器名作为邮箱名传递而不做任何修改?旧版DN包含存档guid。在将LegacyDN字符串传递给CreateStoreID之前,是否需要对其进行按摩?谢谢不需要,只需将通常的/cn=Microsoft Private MDB后缀添加到存储DN。这和开代办店没什么区别。再次感谢@Dmitry Streblechenko,但我仍在努力。我使用EWS检索了其他邮箱设置。这给了我–Server:@xyz.onmicrosoft.com LegacyDN:/o=ExchangeLabs/ou=Exchange管理组FYDIBOHFxxSPDLT/cn=Configuration/cn=Servers/cn=@abc.onmicrosoft.com/cn=Microsoft Private MDB我将上面提到的服务器值作为“ServerDN”参数传递,而LegecyDN值作为mailboxDN传递。CreateStoreEntryID使用这些参数失败。你能告诉我这是不是调用CreateStoreEntryID的正确方法吗..听起来不错。将您的存储条目id与Outlook在打开与代理存储相同的邮箱时使用的内容进行比较您可以在OutlookSpy中看到存储条目id-单击IMsgStore,选择PR\u ENTRYID或PR\u store\u ENTRYID,然后单击。。。“值”编辑框旁边的按钮。