phpMailer - 如何删除收件人

Joe*_*ski 47 php email phpmailer

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

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

$mail->AddAddress($email);
$mail->Subject = $subject;
$mail->IsHTML(false);
$mail->Body = $message;
Run Code Online (Sandbox Code Playgroud)

这样我就可以运行这四行代码,然后根据需要多次一次又一次地发送邮件.的Subject,IsHTMLBody字段被轻易改变,所以我遇到的问题是在AddAddress函数.

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

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

除了AddAddress我可以使用的另一个功能是否只会分配地址?

GDP*_*GDP 98

您可以使用ClearAllRecipients()

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


小智 28

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

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

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

foreach($toaddress as $key=>$val) { $mail->AddAddress( $val ); }
Run Code Online (Sandbox Code Playgroud)

即时通讯使用PHPMailer 5.2

  • 因此,从上面的帖子来看,“ClearAllRecipients”函数将删除地址、抄送和密件抄送,而您列出的函数将仅删除指定字段中的那些地址。如果我理解正确的话,调用所有这三个函数将具有与“ClearAllRecipients”相同的效果。非常感谢您的帮助。 (2认同)
  • 是的,这将产生几乎相同的效果,但我想这样称呼它们,以便应用选择性删除(有时) (2认同)
  • 当然。我不打算在我的脚本中使用任何 CC 或 BCC,所以我将只使用 `ClearAddresses` 函数来提高效率。 (2认同)