将Outlook REST API项目ID转换为MAPI EntryID

Sve*_*enC 3 rest mapi outlook json exchange-server

是否有正式支持的方法将项目ID从Outlook RESTAPI转换为MAPIEntryID?

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

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

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

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

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

感谢您的任何提示SvenC

小智 6

您对Microsoft Graph API的查询可以指定您要包含PR_ENTRYID或其他MAPI属性。下面是官方文档singleValueLegacyExtendedProperty从微软。

例如,如果您要获取邮件的页面并包含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属性的三种有效语法:

  1. 'MapiPropertyType namespaceGuid Name propertyName'
  2. 'MapiPropertyType namespaceGuid Id propertyId'
  3. 'MapiPropertyType propertyTag'

需要注意的是上述用途#3,和0x0FFF的例子是propertyTag对于PR_ENTRYID[MS-OXPROPS] Exchange服务器协议主属性列表


Sla*_*nov 0

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

不,office.js API 没有任何内容可以将 REST/EWS Id 转换为 PR_ENTRY_ID

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

显然,到目前为止还没有任何文档

或者有API可以调用?更喜欢本地转换函数以避免额外的 REST 往返。

是的,有一些调用检索(而不是转换)IMessage Id,这正是您所做的...... RESTful 或 EWS 请求。通过这些请求,您可以获得 IMessage 属性,包括 PR_ENTRY_ID。我只是不太明白你要用它做什么?无论如何,任何返回消息的请求都必须使用 EWS/REST Id 完成。嗯,这可能与您的消息操作有关。