在Microsoft Graph / Outlook REST API中标识DSN(传递状态通知)或NDR(非传递报告)以及失败的收件人

时间:2018-12-04 05:56:24

标签: outlook microsoft-graph outlook-restapi

我在这里发现了几个有关在各种邮件服务器中检测邮件状态的问题,但仍不清楚如何使用Outlook REST API进行操作。

In documentation我们可以看到请求的响应:

GET https://graph.microsoft.com/v1.0/me/messages/AAMkADhMGAAA=

但是答案似乎没有一个包含此类信息的字段。我还调查了标头的请求:

https://graph.microsoft.com/v1.0/me/mailfolders/inbox/messages?$select=subject,internetMessageHeaders

不幸的是,没有像X-Failed-Recipients这样的标题。

是否有任何方法可以使用Outlook API获取传递状态和/或失败的收件人?

1 个答案:

答案 0 :(得分:2)

我的处理方法是像您一样获取消息详细信息和internetMessageHeaders。

  • 首先,我检查标题Content-Type的值multipart/report 表示DSN(交付状态通知),请参见RFC 3461

    • GET https://graph.microsoft.com/v1.0/me/messages/<id>?$select=internetMessageHeaders
  • 然后我得到消息的toRecipients属性,其中包含 失败收件人的电子邮件地址。

    • GET https://graph.microsoft.com/v1.0/me/messages/<id>

注意:

  • 并非所有邮件服务器都遵循RFC3461,因此某些DSN / NDR电子邮件可能会通过
  • 我找不到任何文档说明toRecipients始终包含失败接收者的值,但是到目前为止,我还没有找到相反的示例。