2

我想使用 PHPMailer 向 1000 名左右的收件人发送简报。我目前正在使用 addBCC 循环添加每个地址。时事通讯发送良好,但当我的订阅者收到它时,“收件人”字段显示我设置为填充符的地址,而不是他们自己的地址。

我正在考虑更改为这样的代码:

$mail = new PHPMailer();
$mail->SetFrom('info@domain.com', 'Domain.com');
$mail->Subject = $subject;
$mail2->MsgHTML($body);

while ($row = mysql_fetch_array ($result)) {
    $mail2 = clone $mail;
    $mail2->AddAddress($row["email"]);
    $mail2->send();
}

但它似乎比 BCC 方法慢得多,效率也低得多。有没有更好的发送到列表的方法,这样每个用户都会收到带有正确“收件人”地址的电子邮件,并且无法访问其他用户的电子邮件?

4

1 回答 1

3

你不需要克隆 PHPMailer;一个实例就足够了。只需清除您每次在循环中发送的地址即可。

$mail = new PHPMailer;
$mail->setFrom('info@domain.com', 'Domain.com');
$mail->Subject = $subject;
$mail->msgHTML($body);

while ($row = mysql_fetch_array ($result)) {
    $mail->addAddress($row["email"]);
    $mail->send();
    $mail->clearAllRecipients();
}

您可能还想对 进行一些错误检查send(),并且您不应该再使用这些mysql*功能。

于 2015-01-12T10:28:55.343 回答