phpmailer - 如何使用 PHPMAILER 创建退订链接
问题描述
努力实现取消订阅标头
- 对于单个收件人,它永远不会创建自动退订链接(PASS DKIM、SPF 和 DMARC)
- 到多封电子邮件,它将链接添加到每封电子邮件中并杀死 DKIM
有什么线索吗?谢谢
foreach ($result as $row) {
try {
$mail->addCustomHeader(
"List-Unsubscribe=One-Click",
"<mailto:unsubscribe@cineferte.fr?subject=Unsubscribe : $row['email']>, <https://cineferte.fr/abo.php?unsub=".$row['email'] . ">"
);
$mail->addAddress($row['email'], $row['nom']);
} catch (Exception $e) {
echo 'Email invalide: ' . htmlspecialchars($row['email']) . '<br>';
continue;
}
try {
$mail->send();
echo 'Email envoyé :' . htmlspecialchars($row['nom']) . '->' . htmlspecialchars($row['email']) . '<br>';
mysqli_query(
$db,
"UPDATE `mailing` SET dat_sent = NOW() WHERE email = '" . mysqli_real_escape_string(
$db,
$row['email']
) . "'"
);
} catch (Exception $e) {
echo 'Erreur (' . htmlspecialchars($row['email']) . ') ' . $mail->ErrorInfo . '<br>';
$mail->getSMTPInstance()->reset();
}
$mail->clearAddresses();
$mail->clearAttachments();
}
解决方案
你打电话不addCustomHeader
正确;您试图一次设置多个标题,它不支持,并且标题内容的格式也不正确。改为这样做:
$mail->addCustomHeader(
'List-Unsubscribe',
"<mailto:unsubscribe@cineferte.fr?subject=Unsubscribe%20:%20{$row['email']}>,<https://cineferte.fr/abo.php?unsub=" . $row['email'] . ">"
);
$mail->addCustomHeader(
'List-Unsubscribe-Post',
'List-Unsubscribe=One-Click'
);
除此之外,看起来您正在做正确的事情以发送到列表。
推荐阅读
- node.js - 登录路由的快速速率限制
- css - 为媒体查询优化 css
- java - 如何减少 HashMap 搜索的运行时间?
- spring-cache - spring cache-@Cacheble注解
- json - oracle:没有 json_mergepath 的 json 更新
- c# - 在 C# 中使用 Xmldocument 修改 xml
- c++ - 使用 cmake 构建 Xcode 项目时编译器出现问题
- django - Django collectstatic 不使用 STATIC_ROOT 指定的路径
- javascript - 比较和验证动态添加的输入字段,输入字段的值应该彼此不同 - jQuery 验证插件
- spring-boot - 如何在 solr 的多值字段中搜索并将结果映射到多值字段中?