Как лучше всего отправить рассылку с помощью PHPMailer? - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь отправить новостную рассылку с PHPMailer, в то же время защищая конфиденциальность своих клиентов.

Сначала я установил конфигурацию получателя с помощью mail->addAddress('customerEmail']);, но обнаружил, что отправляя его таким образом, каждый получатель может видеть адреса электронной почты подписчиков других клиентов. Я изменил addAddress на mail->addBCC('customerEmail']);, чтобы он не отображал каждый адрес электронной почты (фактически, теперь он даже не показывает адрес электронной почты получателя, на который он отправляется), но таким образом если кто-то захочет ответить на электронную почту, его ответ будет также отправлен остальным подписчикам ...

Какой для вас лучший вариант решения этой проблемы?

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Как мне посоветовали, лучший способ управлять новостной рассылкой - отправлять электронную почту индивидуально каждому клиенту, хотя это означает небольшое увеличение времени отправки.Таким образом, вы можете предлагать автоматические ссылки для отмены подписки и другие функции, которые в противном случае вы бы не смогли.

Чтобы добиться этого, я просто сделал простой цикл получения адресов из моей базы данных:

$sql = "SELECT `email` FROM `emails`";
$statement = $db->prepare($sql);
$statement->execute();

while ($fila = $statement->fetch()) {
    if(!empty($fila['email'])){
        $mail->addAddress($fila['email']);
        $success = $mail->Send();
        $mail->clearAllRecipients(); //Don't forget this!
    }
}

Метод clearAllRecipients(); очень важен, так как он очищаетполучатель последнего круга, чтобы в разделе «до» электронного письма не отображались все получатели вашей рассылки.

0 голосов
/ 15 мая 2018

Почтовые серверы не используют заголовки сообщений для доставки сообщений.Когда вы отправляете электронное письмо, ваш почтовый клиент поддерживает разговор *, например:

EHLO example.com
MAIL FROM: mail@example.com
RCPT TO: info@example.net, customers@example.org, john@example.com
DATA
From: Me <webmaster@example.com>
To: Customers <whatever@example.com>
Subject: Important info
Dear Blah,

Blah blah.

Regards,
.

(*). Это - это разговор, поскольку он включает ответ сервера на каждую команду, но ямы пропустили эту часть.

Что действительно важно, так это информация, предоставленная в конкретных командах перед блоком DATA.Конечно, большинство почтовых инструментов создают заголовки, соответствующие адресам в инструкциях по обработке, но такие заголовки предназначены исключительно для информационных целей и не должны быть идентичными.Фактически, именно так и работает Bcc: вы указываете своей почтовой программе, что нужно доставлять электронную почту на такой адрес, но пропускаете ее из заголовков.

Итак:

  • Вы можете сделать это быстро (Bcc иодно сообщение для всех)
  • Вы можете сделать это хорошо (Кому и одному сообщению на получателя)

Если вы спрашиваете мое мнение, всегда приятно узнать точную электронную почтуадрес, на который отправляется информационный бюллетень - у многих из нас есть более одного адреса.И на самом деле обязательно отправлять персонализированные сообщения, если вы хотите предлагать автоматические ссылки для отмены подписки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...