56

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

我可以通过多次重新初始化phpMailer对象来完成这项工作,但我想做的是一次创建对象,然后重新分配以下字段:

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

这样我就可以运行那四行代码,然后根据需要一次又一次地发送邮件。、和字段很容易更改Subject,所以我遇到的问题出在函数中。IsHTMLBodyAddAddress

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

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

AddAddress除了我可以使用的其他功能之外,还有其他功能可以分配地址吗?

4

2 回答 2

117

您可以使用clearAllRecipients( )

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

于 2012-06-08T16:20:48.733 回答
32

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

// 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

于 2012-06-08T16:20:16.167 回答