我正在处理的应用程序需要访问电子邮件的标题 - 特别是return-path
,in-reply-to
和references
。理想情况下,我们希望能够访问电子邮件的所有RFC 2822标头。这是否可以使用Outlook / Office 365 REST API?如果没有,是否可以使用任何API?
答案 0 :(得分:7)
更新:InternetMessageHeaders
属性已添加到Outlook API的测试端点,因此您无需使用扩展属性即可获得此属性。您必须通过$select
明确请求该属性。类似的东西:
GET https://outlook.office.com/api/beta/me/mailfolders/inbox/messages?
$select=Subject,InternetMessageHeaders
对于图表:图表的测试终端中的消息中也存在此属性,因此您可以执行以下操作:
GET https://graph.microsoft.com/beta/me/mailfolders/inbox/messages?
$select=subject,internetMessageHeaders
对于非beta端点:API不直接提供访问权限。但是,您可以使用PidTagTransportMessageHeaders。
访问Extended Property API MAPI属性在第一个链接中,我们看到PidTagTransportMessageHeaders
的属性ID为0x7D
,类型为String
。因此,GET的$expand
参数如下所示:
$expand=SingleValueExtendedProperties($filter=PropertyId eq 'String 0x7D')
注意:这仅适用于Outlook端点(https://outlook.office.com)。对于Graph,请参阅madsheep的答案
将其与GET
一起用于特定邮件,您的请求可能如下所示:
GET https://outlook.office.com/api/v2.0/me/messages/{message-id}?
$select=Subject,SingleValueExtendedProperties
&$expand=SingleValueExtendedProperties($filter=PropertyId eq 'String 0x7D')
答案 1 :(得分:4)
对于所有在MS Graph api的遗产中丢失的可怜的灵魂 - 上面的答案似乎不再正确,因为它将返回错误" PropertyId不是属性名称" - 现在似乎正确的答案是:
GET https://graph.microsoft.com/beta/me/messages/{message-id}?
$select=Subject,SingleValueExtendedProperties&
$expand=SingleValueExtendedProperties($filter=id eq 'String 0x7D')
这是从Outlook / Office 365 REST Graph api获取邮件头的方法。