技术解析 · 附来源的解答
List-Unsubscribe 邮件头:定义与实现
List-Unsubscribe 头是一个可选的邮件头,允许收件人通过一键操作或邮件元数据中提供的特定邮箱地址退订邮件列表。它使 Gmail 和 Outlook 等邮件客户端能够直接在用户界面中显示“退订”链接,而不依赖邮件正文。
工作机制
该邮件头为邮件客户端提供了如何处理退订请求的具体指令,主要有两种方式:mailto 链接和 HTTP POST 请求。当用户点击客户端中的退订按钮时,客户端要么向指定地址发送一封格式化的邮件,要么在后台向所提供的 URL 发起 HTTP 请求。这样用户就无需在邮件的 HTML 正文中寻找并点击链接。
对发件人的重要性
当用户找不到便捷的退订方式时,往往会把邮件标记为垃圾邮件;实现该邮件头可以降低这种可能性。由于垃圾邮件过滤器会跟踪垃圾邮件投诉率,提供原生的退订机制能够保护发件人信誉。主流服务商现已要求大批量发件人使用该邮件头,以确保一致的用户体验,并降低其网络中垃圾邮件举报的总量。
运维说明
一个常见错误是没有正确实现 HTTP POST 方式。要实现一键退订体验,服务器必须对 POST 请求返回 200 OK 状态,且不要求用户进一步操作或进行身份验证。发件人还应确保退订操作能被迅速处理,以免用户在流程显得缓慢时因不耐烦而点击垃圾邮件按钮。
实现示例
标准实现包含两个邮件头。第一个是 List-Unsubscribe: <mailto:unsubscribe@example.com>, <https://example.com/unsubscribe>。第二个是 List-Unsubscribe-Post: List-Unsubscribe=One-Click。这一组合告诉客户端,邮件退订和网页退订两种方式均可用,且网页方式支持一键退订标准。您可以使用 SendHQ 或其免费工具验证整体邮件配置。
邮件头验证
验证方法是发送一封测试邮件,并检查原始邮件头,确保语法正确。该邮件头必须放在邮件头部分,而不是正文中。如果提供的 URL 失效或 mailto 地址无效,邮件客户端可能会完全隐藏退订按钮,迫使用户回到手动将邮件标记为垃圾邮件的老路上。
团队常问的问题
List-Unsubscribe 邮件头是必需的吗?
虽然 SMTP 标准并未强制要求,但 Google 和 Yahoo 等主流服务商实际上要求批量发件人必须使用它,才能保持送达率。
mailto 退订和 HTTP 退订有什么区别?
mailto 会向发件人发送一封邮件,而 HTTP 会触发一个网页请求。一键退订更推荐使用 HTTP,因为对用户来说速度更快。
它能取代邮件正文中的退订链接吗?
不能。为遵守 CAN-SPAM 和 GDPR 等法律要求,您仍须在邮件正文中提供可见的退订链接。
它如何影响垃圾邮件率?
它为用户提供了低门槛的退订途径,避免他们使用“举报垃圾邮件”按钮,从而降低垃圾邮件率。
一手资料
- RFC 5322:互联网邮件格式 — RFC Editor
- M3AAWG 最佳通用实践 — M3AAWG