【问题标题】:Handling of List-Unsubscribe callbacks on server处理服务器上的 List-Unsubscribe 回调
【发布时间】:2018-10-03 13:35:37
【问题描述】:

添加“取消订阅”电子邮件标头时,服务器端需要对回调进行何种处理?

可以将邮件链接和网络链接添加到标题中,在 PHPMailer 中它可能如下所示:

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

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

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

【问题讨论】:

    标签: phpmailer email-headers list-unsubscribe


    【解决方案1】:

    您可以随心所欲地处理此问题,但是,您还应该注意 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 的脚本中。请注意,您不需要主题或消息正文 - 地址本身包含您需要的所有内容,这意味着接收者不必写消息 - 他们的邮件客户端可以简单地向地址发送空消息并您将有足够的信息来使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-10
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      相关资源
      最近更新 更多