我最初是在 mailop 列表上看到这个的,但它也被发布在 Reddit 上。摘录如下:
如果您尽管有干净的标题和良好的声誉,但在 Gmail 中仍难以送达,您的 ESP 可能会在您不知情的情况下破坏您的邮件。SendGrid 的 SMTP 中继违反了 RFC 2047 和 RFC 2369,因为它在 List-Unsubscribe 标题的值超过 77 字节时对其进行 MIME 编码。这会破坏 Gmail 和 Outlook 中的退订链接。该问题已在内部确认,但仍未解决。SendGrid 每月发送超过 1000 亿封电子邮件——这是一次大规模的标准合规性失败,对可送达性和合规性产生了实际影响。
…
只要此标题为 77 字节或更少,SendGrid 就会按原样转发。但是,当值达到 78 字节时,其 SMTP 中继会强制使用 MIME 编码单词语法 (RFC 2047) 重写它。这种编码明确禁止在 List-Unsubscribe 等结构化标题中使用。
这是 SendGrid 发送的内容:
List-Unsubscribe: =?us-ascii?Q?=3Chttps=3A=2F=2Fwww=2Eexample=2Ecom=2Funsubscribe=2F=3E=2C=3Cmailto=3Aunsubscribe=40opt?= =?us-ascii?Q?out=2Eexample=2Ecom=3E?=这种编码会破坏 Gmail 和 Outlook 中退订链接的解析。因此,收件人无法通过 UI 元素轻松退订,这可能导致更高的投诉率和更低的收件箱送达率。更糟糕的是,Gmail 的“显示原始邮件”视图会解码标题,因此一开始可能不会注意到重写。
此行为违反了:
RFC 2047,禁止在 List-Unsubscribe 等结构化标题中使用编码单词。
RFC 2369,它定义了 List-Unsubscribe 标题的语法和结构,并假定其可解析为纯 ASCII。
Discourse 发送的 list-unsubscribe 标题示例是:
List-Unsubscribe: <https://meta.discourse.org/email/unsubscribe/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl>
仅唯一令牌就有 64 个字符,因此我们发送的退订链接保证会超过 77 个字符。
我们不使用 SendGrid,但我知道我们的许多自托管用户会使用它,所以我认为让这里的每个人都意识到这一点很重要。
这里有 SendGrid 用户可以确认此行为吗?
