如何使用phpmailer逐个发送电子邮件到多个地址?

我希望每次运行PHP代码时,foreach循环都会向多个地址发送电子邮件:

$id = "a@a.com
    b@c.com
    d@e.com";

$new = explode("\n", $id);

foreach ($new as $addr) {
    $mail->addAddress($addr);
}

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

但它将所有电子邮件地址放入字段,然后发送电子邮件.

因此,当有人收到电子邮件时,他可以在to字段中看到所有电子邮件收件人.

我想要一个代码来逐个发送电子邮件.

解决方法:

您遇到的问题是,您实际上在实际发送电子邮件之前添加了多个收件人addAddress().

那么,在你的循环之后……

$mail->addAddress('a@a.com');    // Add a recipient
$mail->addAddress('b@c.com');    // Add a another recipient
$mail->addAddress('d@e.com');    // Add a another recipient

TO地址现为a @ a.com,b @ c.com,d @ e.com
然后……你正在向所有人发送电子邮件.

要逐个发送电子邮件,我会在循环内完全初始化邮件对象.
(或调用另一个函数传递地址作为参数).

上一篇:在PHPMailer中使用变量的内容作为附件


下一篇:PHPMailer,SMTP连接()失败错误与Gmail