如何使用phpmailer逐个向多个地址发送电子邮件?
我想要一个如何使用phpmailer逐个向多个地址发送电子邮件?,php,email,loops,foreach,phpmailer,Php,Email,Loops,Foreach,Phpmailer,我想要一个foreach循环,以便在每次运行PHP代码时向多个地址发送电子邮件: $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; } e
foreach
循环,以便在每次运行PHP代码时向多个地址发送电子邮件:
$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
字段,然后发送电子邮件
因此,当某人收到电子邮件时,他可以在to
字段中看到所有电子邮件收件人
我需要一个代码来逐个发送电子邮件。使用例如PHPMailer。您可以使用CC(编辑:密件抄送)字段。那时没有人会看到其他的接受者
$mail = new PHPMailer();
$mail->AddBCC('a@a.com');
您应该循环创建和发送邮件-因此为每个收件人创建一条新的邮件消息。那样他们就看不见接收器了。例如:
<?php
$people = array("person1@mail.com", "person2@mail.com", "person3@mail.com");
foreach($people as $p) {
$message = "Line 1\r\nLine 2\r\nLine 3";
mail($p, 'My Subject', $message);
};
?>
也可以使用密件抄送字段(这是隐藏的复写)
前面建议的PHPMailer很好,但您应该注意,邮件列表中的其他人仍然可以看到CC(普通复写件)。问题是,在实际发送电子邮件之前,您实际上添加了多个收件人
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
收件人的地址现在是a@a.com, b@c.com, d@e.com
然后。。。你正在向他们所有人发送电子邮件
要一个接一个地发送电子邮件,我将在循环中完全初始化邮件对象。
(或者调用另一个函数,将地址作为参数传递)。在foreach内部启动新的phpMail,然后发送电子邮件
$id = "a@a.com
b@c.com
d@e.com";
$new = explode("\n", $id);
foreach ($new as $addr) {
$mail = new PHPMailer();
$mail->addAddress($addr);
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
}
在每个循环中使用clearAddresses()方法清除收件人列表:
$id = "a@a.com
b@c.com
d@e.com";
$new = explode("\n", $id);
foreach ($new as $addr)
{
$mail->clearAddresses();
$mail->addAddress($addr);
if (!$mail->send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message sent!";
}
}
因此,您将拥有具有相同身体、主题和其他设置的相同对象。谢谢您的回答。但这不是我想要的。我知道什么是CC,我不想那样做我该怎么做?我不想使用密件抄送和抄送。在答案中添加了一个例子,它不起作用。它是一个PHPmailer,没有邮件功能。我想使用PHPmailer发送电子邮件,而不仅仅是简单的PHP mail()函数。我有更多的游行例子,但你能提到哪个例子解释了如何做我想做的事吗?不要用那个老例子。在我对这个问题的评论中使用我链接到的答案。几乎所有的答案都有问题。我建议你使用它,它完全符合你的需要。这不是我想要的。我已经读过了。那么,为什么在读过之后,您选择完全错误地实现它,而忽略了它的所有正确建议呢?因为它将所有电子邮件地址都放在了字段中。我应该使用for或foreach并将所有内容放入循环中。这是它工作的唯一方式。不,它没有。阅读代码。它在“收件人”字段中放入一个地址,发送消息,然后清除“收件人”地址,然后重复。