phpMailer - How do you Remove Recipients
There are a lot of StackOverflow questions on this topic, but I couldn't find one that was able to help with the issue I'm having. The script that I'm writing sends out multiple emails to various recipients with different message contents.
I can get this working by re-initializing the phpMailer
object multiple times, but what I'd like to be able to do is create the object a single time, and then re-assign the following fields:
$mail->AddAddress($email);
$mail->Subject = $subject;
$mail->IsHTML(false);
$mail->Body = $message;
That way I can just run those four lines of code and then send the mail out, again and again, as many times as necessary. The Subject
, IsHTML
, and Body
fields are easily changed, so the problem I'm having is in the AddAddress
function.
As you can probably guess, after I send out the first email, changing recipients for future emails will result in those stacking onto the current list of recipients.
To put it simply, how can I remove the email addresses associated with my $mail
object so that I can assign them each time while removing the old addresses?
Is there another function besides AddAddress
that I can use that will just assign the addresses?
Solution 1:
You can use clearAllRecipients( )
$mailer->clearAllRecipients( ); // clear all
Solution 2:
im using this always before sending email to recipients:
// clear addresses of all types
$mail->ClearAddresses(); // each AddAddress add to list
$mail->ClearCCs();
$mail->ClearBCCs();
then im doing just this: (not using CC or BCC, $toaddress is just an array of recipients)
foreach($toaddress as $key=>$val) { $mail->AddAddress( $val ); }
im using PHPMailer 5.2