Какой правильный обходной путь для отправки РАЗЛИЧНЫХ сообщений разным получателям в PHPMailer - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь отправить электронное письмо нескольким получателям BCC.Каждый получатель получает идентичное текстовое тело, НО, он также должен получить свое собственное электронное письмо в нем.

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

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;

require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';

//*** -> $allUsers is a JSON

function sendemails_ex($allUsers, $subject, $body)
{
            $emailFrom = "noreply@slandergold.com";
            $emailFromName = "slandergold.com";

            if ($allUsers=="" || $subject=="" || $body=="")
            {
                exit();
            }

            $smtpUsername = "abcdKLARK"; 
            $smtpPassword = "1t%y$R5$4";

            $mail = new PHPMailer;

            $mail->CharSet = 'UTF-8';

            $mail->isSMTP(); 
            $mail->SMTPDebug = 0; 
            $mail->Host = "mail.slandergold.com";

            $mail->Port = 26; //587; // TLS only
            $mail->SMTPSecure = false; //'tls'; // ssl is depracated
            $mail->SMTPAuth = false; //true;
            $mail->Username = $smtpUsername;
            $mail->Password = $smtpPassword;

            $mail->setFrom($emailFrom, $emailFromName);

            $arr = json_decode($allUsers,true);

            foreach($arr as $item) 
            { 
                $mail->addBCC($item['Email'], $item['Fullname']);
            }

            $mail->isHTML(true);                                 
            $mail->Subject = $subject;

            // ***********
            // is there a way to make it 
            // so that every individual BCC recipient 
            // will get a body with the individual addition of: 
            // $userEmail = ?
            // $body."<br />This is your email: ".$userEmail;
            // ***********

            $mail->msgHTML($body);

            $mail->AltBody = 'HTML messaging not supported';

            if(!$mail->send())
            {
                echo "Mailer Error: " . $mail->ErrorInfo;
            }
            else
            {
                echo "Message sent!";
            }
}

1 Ответ

0 голосов
/ 06 февраля 2019

Как говорится в комментариях, вы не можете отправлять разные электронные письма разным получателям с помощью BCC.Вам нужно отправлять каждое сообщение индивидуально, и точный способ сделать это представлен в примере списка рассылки, поставляемом с PHPMailer .В вики проекта также есть заметки о том, как эффективно отправлять в списки.

...