在 Microsoft Graph/Outlook REST 中识别 DSN(传递状态通知)或 NDR(未传递报告)和失败的收件人 API
Identifying DSN (Delivery Status Notifications) or NDR (Non Delivery Reports) and the failed recipients in Microsoft Graph / Outlook REST API
我在这里发现了几个关于在各种邮件服务器中检测邮件状态的问题,但仍然不清楚如何使用 Outlook REST API。
In documentation 我们可以看到请求的响应:
GET https://graph.microsoft.com/v1.0/me/messages/AAMkADhMGAAA=
但答案似乎没有包含此类信息的字段。我还调查了 headers:
的请求
https://graph.microsoft.com/v1.0/me/mailfolders/inbox/messages?$select=subject,internetMessageHeaders
不幸的是,没有 header 像 X-Failed-Recipients
。
有什么方法可以使用 Outlook API 获取传递状态 and/or 失败的收件人?
我的方法是像您一样获取消息详细信息和 internetMessageHeaders。
首先我检查 header 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
总是包含失败收件人的值,但到目前为止我还没有找到相反的例子。
我确实尝试提及 ,但是当我添加额外的“/”时它起作用了
在 link
GET https://graph.microsoft.com/v1.0/me/messages/<id>/?$select=internetMessageHeaders
我在这里发现了几个关于在各种邮件服务器中检测邮件状态的问题,但仍然不清楚如何使用 Outlook REST API。
In documentation 我们可以看到请求的响应:
GET https://graph.microsoft.com/v1.0/me/messages/AAMkADhMGAAA=
但答案似乎没有包含此类信息的字段。我还调查了 headers:
的请求https://graph.microsoft.com/v1.0/me/mailfolders/inbox/messages?$select=subject,internetMessageHeaders
不幸的是,没有 header 像 X-Failed-Recipients
。
有什么方法可以使用 Outlook API 获取传递状态 and/or 失败的收件人?
我的方法是像您一样获取消息详细信息和 internetMessageHeaders。
首先我检查 header
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
总是包含失败收件人的值,但到目前为止我还没有找到相反的例子。
我确实尝试提及
GET https://graph.microsoft.com/v1.0/me/messages/<id>/?$select=internetMessageHeaders