【问题标题】:Bounce mail detection with help of Microsoft Graph API借助 Microsoft Graph API 检测退回邮件
【发布时间】:2021-12-13 12:58:42
【问题描述】:

我们的团队需要以某种方式从我们的 python 代码中检测被退回(永久)的消息,并将它们添加到我们的退回列表中,以便将来不再发送它们。因此,例如,当我们向不存在的邮箱发送通知时,预期的行为是从消息系统接收退回邮件,该邮件将为用户和管理员诊断信息提供一些信息。为了检测永久退回的邮件,我们尝试使用名为 flufl.bounce 的 python 库,在调查期间,当我通过 IMAP 扫描我的个人 Gmail 帐户时,我能够检测到退回邮件,并且该库运行良好。但是,由于不再支持基本身份验证,并且尚未为 IMAP 实现 OAuth 客户端凭据流,因此无法在我们的用例中将 IMAP 用于我们在 azure 中的共享邮箱。因此,我们使用支持客户端凭据流的 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 的客户端凭据流发布?

【问题讨论】:

    标签: microsoft-graph-api microsoft-graph-mail email-bounces


    【解决方案1】:

    感谢您与我们联系。据我所知,MS Graph 目前不支持获取这些标头,您是否会考虑在 Microsoft 开发人员平台上使用 filing a feature request 以便对其进行调查?

    与此同时,您可能会考虑使用Microsoft Outlook Messaging API (MAPI) 来检测退回邮件。

    如果您有其他问题,请告诉我这是否有帮助。

    【讨论】:

    • 感谢戴安娜的回复。找到了如何检查消息是否被退回的方法,并且通常简化了从消息中获取必要数据的过程。为此,我得到了消息的原始版本。
    • 根据文档 (docs.microsoft.com/en-us/graph/api/…) 我应该使用以下端点之一 1)GET /me/mailFolders/{id}/messages/{id}/$value 2)GET /users /{id | userPrincipalName}/mailFolders/{id}/messages/{id}/$value。我尝试了第一个选项来扫描我的邮箱,一切正常,我能够提取带有消息/传递状态的部分。但是我需要在后台从共享邮箱中提取数据,为此我们使用客户端凭据流。
    • 因此我不能使用 /me 端点。相反,我应该使用第二个选项为 /users 获取指定消息的 MIME 内容,但它不起作用。我得到响应不支持 OData 请求,响应状态为 405 Method Not Allowed
    猜你喜欢
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    相关资源
    最近更新 更多