问题描述
努力实现取消订阅标头
有什么线索吗? 谢谢
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'
);
除此之外,您似乎正在为发送到列表做正确的事情。