microsoft-graph-api - 借助 Microsoft Graph API 检测退回邮件
问题描述
我们的团队需要以某种方式从我们的 python 代码中检测被退回(永久)的消息,并将它们添加到我们的退回列表中,以便将来不再发送它们。因此,例如,当我们向不存在的邮箱发送通知时,预期的行为是从消息系统接收退回邮件,该邮件将为用户和管理员诊断信息提供一些信息。为了检测永久退回的邮件,我们尝试使用名为 flufl.bounce 的 python 库,在调查期间,当我通过 IMAP 扫描我的个人 Gmail 帐户时,我能够检测到退回邮件,并且该库运行良好。但是,由于不再支持基本身份验证,并且尚未为 IMAP 实现 OAuth 客户端凭据流,因此无法在我们的用例中为我们在 Azure 中的共享邮箱使用 IMAP。因此,我们使用支持客户端凭据流的 Microsoft 图形 API 而不是 IMAP,并且我们能够从我们的邮箱中获取消息。但是,DSN 检测器是flufl.bounce 库不会将此类邮件识别为已退回邮件,即使从管理员诊断信息中可以清楚地看到邮件已被退回。我进行了一些调查,发现该邮件不包含以下标头,这些标头应在响应中显示以将其识别为退回邮件。例如:我们进行了一些调查,发现该邮件不包含以下标题,这些标题应在响应中显示以将其识别为退回邮件。例如:我们进行了一些调查,发现该邮件不包含以下标题,这些标题应在响应中显示以将其识别为退回邮件。例如:
Content-Type: message/delivery-status
Reporting-MTA: dns; googlemail.com
Arrival-Date: Tue, 26 Oct 2021 02:35:28 -0700 (PDT)
X-Original-Message-ID: <****>
Final-Recipient: rfc822; ********************
Action: failed
Status: 5.1.1
Diagnostic-Code: SMTP; 550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. Learn more at
550 5.1.1 https://support.google.com/mail/?p=NoSuchUser
Last-Attempt-Date: Tue, 26 Oct 2021 02:35:28 -0700 (PDT)
当我通过 Outlook 视图源检查退回邮件时,我可以找到此标头,但是,图形 api 响应不包含它们。我试图通过图形 api 获取 eml 版本的邮件,但是我没有找到这些标题。是否可以以某种方式将它们添加到响应中?还是我们应该等到 IMAP 的客户端凭据流被释放?
解决方案
感谢您伸出援手。据我所知,MS Graph 目前不支持获取这些标头,您是否考虑在 Microsoft 开发人员平台上提交功能请求以便对其进行调查?
同时,您可能会考虑使用Microsoft Outlook Messaging API (MAPI)来检测退回的邮件。
让我知道这是否有帮助,如果您还有其他问题。
推荐阅读
- ssas - 如何在 SSAS/MDX 中的不同计数度量上创建 R12?
- smartcontracts - 无法在 web3 对象中设置提供程序
- c# - 如何在 OxyPlot AngleAxis 和 MagnitudeAxis 中画一个圆?
- text - 如何在 Kofax Transformation 中旋转文本?
- ruby - 如何在保持缩进的同时将 .yaml.erb 嵌入到另一个 .yaml.erb 中?
- php - 当错误的mysql凭据时,Laravel artisan 不显示任何内容
- r - 通过将空白单元格替换为 NA 或将它们更改为“。”将因子变量转换为数值变量。
- google-search-console - 为什么此站点地图失败
- ios - 从应用程序的视图中删除地图时出现奇怪的错误
- node.js - 模拟的 npm 模块开玩笑地返回空对象