0

添加“列表取消订阅”电子邮件标头时,服务器端需要对回调进行什么样的处理?

可以将 mailto-link 和 web-link 添加到标题中,在 PHPMailer 中它可能如下所示:

$email->AddCustomHeader("List-Unsubscribe: <mailto:unsubscribe@example.com?subject=Unsubscribe>, <http://example.com/unsubscribe.php?unsubscribeid=$id>");

但是 mailto-address 是否必须以某种方式自动处理取消订阅,或者如果请求只是发送到一个由手动处理取消订阅请求的列表管理员经常检查的收件箱,是否可以?

那么网络链接呢?它是否必须指向一个脚本,然后在那里取消订阅收件人,或者它可以只指向带有取消订阅表单的网页?

4

1 回答 1

0

您可以按照自己的喜好处理此问题,但是,您也应该注意List-Unsubscribe-Post标头(在RFC8058中定义),因为它使您更不容易因邮件扫描程序而意外取消订阅。

我真的建议自动处理这些。这并不难。list-unsubscribe 中的 URL 应该是完全独立的,也就是说,您应该将所需的所有数据(例如唯一用户标识符的哈希和邮件列表 ID)嵌入到 URL 中,因此对于 HTTP,您可能采用:

'<https://www.example.com/listunsub/' . $userid .'/' . $listid . '>'

您可以在 Web 服务器中配置重写以将该 URL 模式映射到 PHP 脚本中的适当变量,并执行必要的数据库操作以将它们从邮件列表中删除。

对于电子邮件,它有点不同:

'<mailto:listunsub-' . userid . '-' . $listid . '@example.com .'>'

对于最后一种格式,您将配置您的邮件服务器以发现“listunsub-”前缀并使用它将消息通过管道传输到可以提取用户和列表 ID 的脚本中。请注意,您不需要主题或消息正文 - 地址本身包含您需要的所有内容,这意味着接收者不必写消息 - 他们的邮件客户端可以简单地向地址发送空消息并您将有足够的信息来使用。

于 2018-10-03T16:26:14.037 回答