我正在尝试向多个不同的密件抄送收件人发送电子邮件。 每个收件人都有一个相同的正文,但他还需要在其中接收自己的电子邮件。
我正在遍历JSON以使用$ mail-> addBCC()函数添加电子邮件。 而且我需要发送给每个用户的$ body包含自己的地址。
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!";
}
}
答案 0 :(得分:1)
正如评论所说,您不能使用密件抄送将不同的电子邮件发送给不同的收件人。您需要分别发送每条消息,the mailing list example provided with PHPMailer中提供了确定的发送方法。项目Wiki中还有关于如何有效发送到列表的注释。