RFC 2369:List-Unsubscribe 和 List-* 头部
ELI5: 当你收到杂志订阅的信件时,通常会有一个电话号码和地址用于取消订阅。RFC 2369 对电子邮件也添加了同样的功能——标准化的邮件头,告诉电子邮件客户端如何退订、获取帮助、订阅或联系邮件列表所有者。
为什么存在这个
在RFC 2369之前,邮件列表消息没有标准方式来公布取消订阅或管理URL。用户必须在消息页脚中查找取消订阅链接——如果存在的话。该RFC定义了一系列List-*标头字段,电子邮件客户端可以解析并将其呈现为UI元素(如Gmail中发件人姓名旁的"取消订阅"链接)。
如今,这些标头对商业电子邮件至关重要。Gmail、Yahoo和Apple Mail都使用List-Unsubscribe来显示一键取消订阅按钮。RFC 8058后来使用真正的一键POST机制进行了扩展。
工作原理
每个List-*标头包含一个或多个URI(在尖括号中,以逗号分隔),电子邮件客户端可以用于列表管理。最重要的是List-Unsubscribe,但该RFC定义了完整的集合:
完整的List-*标头族
| 标头 | 目的 |
|---|---|
List-Unsubscribe |
从列表取消订阅的URL |
List-Subscribe |
订阅列表的URL |
List-Help |
列表文档或帮助的URL |
List-Post |
向列表发送消息的地址(如果不允许发布,则为NO) |
List-Owner |
列表管理员的联系地址 |
List-Archive |
列表消息存档的URL |
标头示例
; HTTPS URL和mailto备选方案 List-Unsubscribe: <https://example.com/unsub?id=abc123>, <mailto:unsub-abc123@example.com> ; 一键取消订阅(RFC 8058添加) List-Unsubscribe-Post: List-Unsubscribe=One-Click ; 其他List-*标头 List-Subscribe: <https://example.com/subscribe> List-Help: <https://example.com/list-help> List-Post: <mailto:discussion@example.com> List-Owner: <mailto:listadmin@example.com> List-Archive: <https://example.com/archive>
URI方案
RFC允许任何URI方案,但实际上使用了两种:
-
mailto:— 客户端向指定地址发送电子邮件以触发该操作。这是原始机制,仍然可以作为备选方案。 -
https:— 客户端打开网址。结合RFC 8058的List-Unsubscribe-Post,这可以通过HTTP POST实现真正的一键取消订阅。
提供多个URI时,电子邮件客户端选择使用哪个。当存在List-Unsubscribe-Post时,大多数现代客户端优先选择HTTPS而不是mailto。
关键技术细节
正确的标头格式
URI必须用尖括号括起来。多个URI以逗号分隔。根据标准标头折叠规则(RFC 5322),允许空格和行折叠。
正确: List-Unsubscribe: <https://example.com/unsub?id=abc>, <mailto:unsub@example.com> 错误(缺少尖括号): List-Unsubscribe: https://example.com/unsub?id=abc
mailto URI
取消订阅的mailto URI可以包含主题或正文:
List-Unsubscribe: <mailto:unsub@example.com?subject=unsubscribe-abc123>
接收系统处理传入的电子邮件以触发取消订阅。即使收件人的电子邮件客户端不支持基于HTTPS的取消订阅,这也有效。
List-Post: NO
对于收件人无法发布的仅公告列表,使用特殊值:
List-Post: NO
常见错误
-
缺少尖括号。 URI必须用
< >包装。没有它们,电子邮件客户端将无法正确解析标头。 -
HTTPS URL没有List-Unsubscribe-Post。 如果提供HTTPS URL但省略
List-Unsubscribe-Post标头(RFC 8058),Gmail和Yahoo将不会显示一键取消订阅按钮。它们需要两个标头结合使用。 - 需要登录的取消订阅URL。 取消订阅端点必须无需用户登录即可工作。它应仅从URL参数识别订阅者。
- 损坏或过期的URL。 如果取消订阅URL返回错误或重定向到通用页面,邮箱提供商可能会处罚你的发件人信誉。这些URL必须可靠运行。
- 将List-Unsubscribe添加到事务性电子邮件。 List-*标头用于批量/商业电子邮件。将它们添加到密码重置、订单确认或其他事务性消息会让收件人感到困惑,在语义上是错误的。
- 不包括mailto备选方案。 虽然HTTPS是一键式的首选,但mailto URI可以确保与不支持基于HTTP的取消订阅的旧电子邮件客户端的兼容性。
可交付性影响
-
Gmail和Yahoo要求它。 自2024年2月以来,Gmail和Yahoo要求批量发件人提供
List-Unsubscribe(带有RFC 8058一键支持)。没有这些标头的消息更可能被过滤。 - 减少垃圾邮件投诉。 当用户能够通过电子邮件客户端UI轻松取消订阅时,他们远不太可能点击"报告垃圾邮件"。较低的投诉率直接改善收件箱投递。
- 表明合法发送。 格式正确的List-*标头的存在是对垃圾邮件过滤器的积极信号。它表明发件人遵循最佳实践并为收件人提供退出方式。
-
Apple Mail集成。 Apple Mail使用
List-Unsubscribe在消息顶部显示取消订阅横幅。缺少标头意味着大量受众缺少功能。