【问题标题】:Sendgrid Inbound Webhook - Undelivered notificationSendgrid 入站 Webhook - 未发送的通知
【发布时间】:2021-09-03 08:05:37
【问题描述】:

根据 sendgrid 文档,入站解析器 webhook 响应失败的方式是它将重试将电子邮件发布到配置的端点 3 天,如果未送达将丢弃电子邮件。

Parse API 会将已解析的电子邮件发布到您指定的 URL。如果 POST 不成功,SendGrid 会自动排队并重试任何以 5XX 状态响应的 POST。这可以防止错误配置其网站或 POST URL 的客户丢失数据。

以 2xx 状态响应 POST 请求以阻止电子邮件重试。

为避免返回错误,您的链接必须在收到电子邮件时返回 2xx HTTP 代码。此回复让我们的系统知道您的链接已收到电子邮件。然后将其从我们的发送队列中删除。如果我们没有收到有效的 2xx HTTP 响应,我们的服务器将认为他们未能传递您的消息。 3 天后无法送达的邮件将被丢弃。

我想知道在丢弃未送达的电子邮件之前,sendgrid 是否会通知发件人他们的电子邮件无法送达?

【问题讨论】:

    标签: parsing webhooks sendgrid inbound


    【解决方案1】:

    SendGrid 在删除电子邮件之前不会发送通知。但是,只有在收到来自您的 Webhook URL 的错误并在三天内重试发布该消息后,该消息才会被丢弃。

    【讨论】:

    • 请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。
    【解决方案2】:

    根据我运行的一些测试,SendGrid 似乎不会向发件人发送通知,也没有任何简单的方法可以确定 SendGrid 是否丢弃了任何入站电子邮件。

    虽然文档措辞有些含糊,但我基于测试(与文档措辞一致)的理解是这样的:

    • 服务器返回 2xx: 电子邮件被视为已接受,不再进行尝试。
    • 服务器返回 5xx: 服务器有错误,在返回 2xx 之前进行了尝试(请参阅下文了解后续尝试的时间),或 72 小时过去了
    • 服务器返回任何其他响应,或 DNS 记录不存在: 电子邮件被视为失败,不再进行尝试。

    我的结论基于我在一周内进行的多项测试,从中我确定了以下几点:

    案例 1. 解析服务器返回 400 或 403 错误
    电子邮件在一次尝试后被丢弃。
    不再尝试 POST 电子邮件。
    不会向发件人或 SendGrid 帐户发送任何通知。

    (测试方法:将 SendGrid 配置为返回上述错误代码之一的 URL。检查了 1 周以上的服务器日志,并注意到仅进行了一次尝试。)

    案例 2. 解析挂钩 URL 没有 DNS 记录
    电子邮件被丢弃,大概是在一次尝试之后。
    不会向发件人或 SendGrid 帐户发送任何通知。

    (测试方法:将hook URL配置到没有任何DNS记录的子域。运行DNS搜索并尝试打开hook URL以确认DNS记录不指向任何地方。发送电子邮件。然后,12小时后,将适当的记录添加到子域以将其指向脚本。检查服务器日志并确认未尝试 POST 电子邮件。随后的电子邮件尝试成功 POST。)

    案例3.解析服务器返回500错误
    SendGrid 尝试按以下时间间隔 POST 到挂钩 URL:
    +0 +5m +10m +15m +20m
    +25m +35m +50m +1h20m +2h20m
    ...然后每 3 小时一次
    最后一次尝试发生在 +71h20m

    20 分钟的偏移有点不寻常,但它落在整点上,所以可能是因为消息排队尝试在整点上 POST。
    72 小时后不再尝试 POST 电子邮件。
    不会向发件人或 SendGrid 帐户发送通知。

    统计
    documentation 指的是统计数据的可用性,但是,我发现这些数字不准确。

    例如,在我的测试期间,我有许多电子邮件通过 API,包括一些打算成功的电子邮件(确实 POST 到我的服务器)和一些打算失败的电子邮件(作为上面的测试),但是返回的数字并不一致。

    要点
    在以下情况下应小心:

    • 服务器停机时间:这最终取决于服务器的配置方式。如果服务器返回 5xx 响应代码,SendGrid 将继续尝试 POST 电子邮件。我还尝试测试超时场景,但是,SendGrid 似乎非常耐心(例如,我让脚本暂停 10 分钟,SendGrid 保持连接 10 分钟,但有趣的是,由于 5 分钟后发生第二次尝试,电子邮件 POST 两次)。
    • 返回 4xx 错误代码的服务器配置错误。 SendGrid 将删除电子邮件。

    还应注意,如果电子邮件被丢弃,似乎没有任何可靠的方法可以找出这一点。

    【讨论】:

      【解决方案3】:

      我们得到了 Sendgrid 支持团队的确认,即在入站 Webhook 解析器功能中删除的电子邮件将不会有任何通知或保存在 Sendgrid 中。因此,我们将无法获得有关被丢弃电子邮件的任何信息。

      【讨论】:

        猜你喜欢
        • 2019-07-08
        • 1970-01-01
        • 2022-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-21
        • 1970-01-01
        • 2017-06-05
        相关资源
        最近更新 更多