首页 > 解决方案 > 如何使用 PHPMAILER 创建退订链接

问题描述

努力实现取消订阅标头

有什么线索吗?谢谢

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();
}

标签: phpmailerlist-unsubscribe

解决方案


你打电话不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'
        );

除此之外,看起来您正在做正确的事情以发送到列表。


推荐阅读