是否有正式支持的方法将项目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的singleValueLegacyExtendedProperty
的official 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 List的
propertyTag
的PR_ENTRYID
。