我想使用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方法慢得多且效率低。是否有更好的方式发送到列表,以便每个用户收到带有正确“到”地址的电子邮件,并且无法访问其他用户的电子邮件?
答案 0 :(得分:2)
您不需要克隆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*
函数。