Deliverability

什么是一键退订,如何实现 List-Unsubscribe?

一键退订通过邮件客户端的 POST 请求移除收件人,使用签名的 List-Unsubscribe 请求头,无需网站确认步骤。

自动化安全工具会打开收件邮件中的链接。仅凭链接被访问不足以证明收件人希望退订。

一键退订如何区分退订请求和链接访问?

一键退订在获得收件人同意后使用 HTTP POST 请求,而不是将被抓取的链接视为退出。

RFC 8058 要求接收系统在发出该请求前获得用户同意。

发件人随后可以在无需登录或确认页面的情况下处理退出请求。便捷的退订也为收件人提供了一种替代将不需要的邮件标记为垃圾邮件的方式。

邮件必须包含哪些请求头?

邮件需要一个 List-Unsubscribe 请求头和一个 List-Unsubscribe-Post 请求头。

第一个提供退订目标地址。第二个包含固定值 List-Unsubscribe=One-Click。Google 的发件人指南展示了这一对请求头:

List-Unsubscribe-Post: List-Unsubscribe=One-Click
List-Unsubscribe: <https://solarmora.com/unsubscribe/example>

使用 HTTPS URL 作为目标地址,以防止退订请求被拦截。允许添加非 HTTP 的其他目标地址,例如 mailto 地址。

使用 DKIM 对两个请求头进行签名。将它们包含在签名的 h= 覆盖请求头列表中。如果缺少所需的有效签名,RFC 8058 建议接收方不提供一键退订控件。因此,仅提供请求头并不能保证显示按钮。

退订端点必须接受什么?

端点必须在不要求登录、cookie 或 HTTP 授权的情况下接受一键 POST 请求。接收邮件系统在没有收件人网站会话的情况下发出该请求。

URL 必须标识收件人及要将其移除的列表,因为没有会话提供该上下文。POST 正文携带固定的键值对 List-Unsubscribe=One-Click

在 URL 中使用难以伪造的标识符,因为可预测的地址可能让他人退订其他收件人。在执行请求前先验证该标识符。

发件人不得返回 HTTPS 重定向。重定向可能改变 POST 的处理方式,因此发布的端点必须直接处理请求。3xx 重定向响应因此不满足此要求。

如果防火墙阻止了请求怎么办?

被阻止的请求仍然可能使发件人对未处理的退订承担责任。

Google 的合规状态仪表板会统计成功的退订请求,即使中间环节阻止了请求到达你的服务器。

需要浏览器会话的机器人验证与匿名一键 POST 相冲突。配置端点的访问规则,使合法请求能够到达端点。空的应用日志并不能证明没有收件人尝试过退订。

一键退订是否替代邮件正文中的链接?

不会。Google 和 Yahoo 还要求在营销邮件和订阅邮件的正文中包含可见的退订链接。

Google 要求使用 RFC 8058 方法来实现基于请求头的退订控件。Yahoo 的指南推荐该方法,同时也接受在 list-unsubscribe 请求头中使用 mailto。

正文链接为收件人提供了另一种请求移除的方式。即使邮件客户端显示了自己的退订控件,该链接仍然必要。

你必须多快处理请求?

Google 和 Yahoo 要求在两天内处理退订请求。

Google 在其合规仪表板中将截止时间表述为 48 小时。周一中午收到的请求必须在周三中午前完成处理。

截止时间针对的是将收件人从列表中移除。一个正常运行的端点如果在该时间点之后仍未取消收件人的订阅,则不满足处理要求。

如何使用 Bird 的退订处理?

将发送分类为营销类型,Bird 就会提供其托管的退订处理。

API 的 category 字段接受 marketing(用于促销邮件)或 transactional(用于运营邮件)。如果未显式指定类别,使用可复用模板的发送会继承模板的分类。其他发送默认为 marketing

Bird 会将退订请求头对添加到营销邮件中,并将其纳入签名内容。其托管端点会记录退出请求。后续的营销发送会遵守该抑制记录,即阻止向已退出地址投递的记录。

对于单条 HTTP API 发送,将两个营销退订请求头留为 Bird。提供任一托管请求头会返回 422。当你通过 Bird 的广播向受众发送时,Bird 会丢弃你提供的任何营销退订请求头。SMTP 提交也会丢弃这些请求头。

Bird 不会自动向事务性邮件添加托管请求头对。单条 HTTP API 发送可以在该类别上透传自定义退订请求头。

退订链接指南介绍了可见的正文链接和默认页脚。类别介绍了分类如何影响向已退出收件人的投递。

简而言之

  1. RFC 8058 使用一对请求头。

    List-Unsubscribe 提供 HTTPS 目标地址,List-Unsubscribe-Post 标识一键退订请求。

  2. 签名必须覆盖两个请求头。

    有效的 DKIM 签名必须在其签名列表中包含两个退订请求头。

  3. 端点无需登录或重定向。

    请求在 URL 中携带识别信息,必须在无 cookie 或授权的情况下正常工作。

  4. 可见链接和及时处理仍然重要。

    提供商要求包括正文中的退订链接和两天内完成处理。

基于同一网络构建。

测试 API 密钥即刻获取。添加付款方式并验证发送者身份后,即可解锁生产环境。

你的下一个创意。
随时连接。