是否有正式支持的方法将项目ID从Outlook的REST API转换为MAPI EntryID?

我说的是邮箱端点上的http GET的json响应中的项目返回的“Id”字段,如下所示:

https://outlook.office365.com/api/v2.0/me/messages

Id字段包含base64值。当我将其转换为十六进制并将其与相同项目的PR_ENTRY_ID值进行比较时,例如使用MFCMAPI,我可以发现EntryID包含在Id字段的十六进制版本中。

有官方文档如何在id格式之间转换?

还是要调用的API?希望使用本地转换函数来避免其他REST往返。

谢谢你的提示
斯文

最佳答案

您对Microsoft Graph API的查询可以指定您要包括PR_ENTRYID或其他MAPI属性。这是Microsoft的singleValueLegacyExtendedPropertyofficial documentation

例如,如果您想获取消息的页面并包含PR_ENTRYID,则可以发出GET请求以:
https://graph.microsoft.com/v1.0/me/messages?$expand=singleValueExtendedProperties($filter=id%20eq%20'Binary%200x0FFF')
没有URL编码,$expand语句读取:$expand=singleValueExtendedProperties($filter=id eq 'Binary 0x0FFF')
有用于过滤MAPI属性的三种有效语法:

  • 'MapiPropertyType namespaceGuid Name propertyName'
  • 'MapiPropertyType namespaceGuid Id propertyId'
  • 'MapiPropertyType propertyTag'

  • 请注意,上面的示例使用#3,并且0x0FFF是[MS-OXPROPS] Exchange Server Protocols Master Property ListpropertyTagPR_ENTRYID

    09-28 06:52
    查看更多