首页 > 解决方案 > 从 REST 访问已回复/转发/等状态

问题描述

我正在尝试在 Graph API 中获取和设置电子邮件的转发/回复状态。这在 OWA 中由右栏中的小图标表示。

似乎没有一流的方式来访问这些信息,至少它不会出现在未过滤的 JSON 转储中。

Google 建议将其存储在 PidTagLastVerbExecuted 或 PidTagIconIndex 的扩展属性中,但尝试访问这些只会返回 404:

https://graph.microsoft.com/beta/me/mailFolders/{id}/messages?$select=SingleValueExtendedProperties&$expand=SingleValueExtendedProperties($filter%3Did+eq+'String+0x1081')

0x0070 等其他扩展属性确实有效,因此语法似乎是正确的,并且 0x1081 来自这里https://docs.microsoft.com/en-us/office/client-developer/outlook/mapi/pidtaglastverbexecuted-canonical-property

此信息已存储,您可以在 OWA、Outlook 应用程序中看到它,并且您可以在 IMAP 中看到它。

有没有办法做到这一点?似乎奇怪的是,没有提供有关电子邮件状态的基本信息。

标签: outlookmicrosoft-graph-api

解决方案


您指定了错误的数据类型,该属性在文档中定义为 Long(但 doco 用于 MAPI),因此它实际上是 EWS 和 Graph 中的整数,例如这是我用来返回 PidTagLastVerbExecuted 和 PidTagLastVerbExecutedTime 的东西(它给了你时间最后一个动作的)对于特定的消息

/v1.0/users('user@domaincom')/MailFolders/AllItems/messages/?$select=ReceivedDateTime,Sender,Subject,IsRead,inferenceClassification,InternetMessageId,parentFolderId,hasAttachments,webLink,InternetMessageHeaders&$Top=1000&$filter=internetMessageId+eq+%27%3cSG2PR04MB3223962312D5B46D0C9CA1B5C89C0%40SG2PR04MB3223.apcprd04.prod.outlook.com%3e%27&$expand=SingleValueExtendedProperties($filter=(Id%20eq%20'Integer%200x1081')%20or%20(Id%20eq%20'SystemTime%200x1082')) 

推荐阅读