phpMailer - 如何删除收件人

时间:2012-06-08 16:13:07

标签: php email phpmailer

关于这个主题有很多StackOverflow问题,但我找不到能够帮助解决我遇到的问题的问题。我正在编写的脚本会向具有不同消息内容的各个收件人发送多封电子邮件。

我可以通过多次重新初始化phpMailer对象来实现此功能,但我希望能够做的是一次创建对象,然后重新分配以下字段:

$mail->AddAddress($email);
$mail->Subject = $subject;
$mail->IsHTML(false);
$mail->Body = $message;

这样我就可以运行这四行代码,然后根据需要多次一次又一次地发送邮件。 SubjectIsHTMLBody字段很容易更改,因此我遇到的问题是AddAddress函数。

正如您可能猜到的那样,在我发送第一封电子邮件后,更改收件人以备将来发送电子邮件将导致这些邮件堆叠到当前收件人列表中。

简单地说,如何删除与$mail对象关联的电子邮件地址,以便每次删除旧地址时都可以分配它们?

AddAddress之外还有其他功能我可以使用它只分配地址吗?

2 个答案:

答案 0 :(得分:94)

您可以使用ClearAllRecipients( )

$mailer->ClearAllRecipients( ); // clear all

答案 1 :(得分:26)

我总是在向收件人发送电子邮件之前使用它:

// clear addresses of all types
$mail->ClearAddresses();  // each AddAddress add to list
$mail->ClearCCs();
$mail->ClearBCCs();

然后就是这样做:(不使用CC或BCC, $ toaddress 只是一组收件人)

foreach($toaddress as $key=>$val) { $mail->AddAddress( $val ); }

我正在使用PHPMailer 5.2