Home » Php » php – PHPMailer AddAddress()

php – PHPMailer AddAddress()

Posted by: admin April 23, 2020 Leave a comment

Questions:

I don’t know how the data should be formatted for AddAddress PHPMailer function; I need the email to be sent to multiple recipients so I tried

$to = "[email protected],[email protected],[email protected]";
$obj->AddAddress($to);

but with no success. Any help will be appreciated.

How to&Answers:

You need to call the AddAddress function once for each E-Mail address you want to send to. There are only two arguments for this function: recipient_email_address and recipient_name. The recipient name is optional and will not be used if not present.

$mailer->AddAddress('[email protected]', 'First Name');
$mailer->AddAddress('[email protected]', 'Second Name');
$mailer->AddAddress('[email protected]', 'Third Name');

You could use an array to store the recipients and then use a for loop. I hope it helps.

Answer:

You need to call the AddAddress method once for every recipient. Like so:

$mail->AddAddress('[email protected]', 'Person One');
$mail->AddAddress('[email protected]', 'Person Two');
// ..

To make things easy, you should loop through an array to do this.

$recipients = array(
   '[email protected]' => 'Person One',
   '[email protected]' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddAddress($email, $name);
}

Better yet, add them as Carbon Copy recipients.

$mail->AddCC('[email protected]', 'Person One');
$mail->AddCC('[email protected]', 'Person Two');
// ..

To make things easy, you should loop through an array to do this.

$recipients = array(
   '[email protected]' => 'Person One',
   '[email protected]' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddCC($email, $name);
}

Answer:

Some great answers above, using that info here is what I did today to solve the same issue:

$to_array = explode(',', $to);
foreach($to_array as $address)
{
    $mail->addAddress($address, 'Web Enquiry');
}

Answer:

foreach ($all_address as $aa) {
    $mail->AddAddress($aa); 
}

Answer:

All answers are great. Here is an example use case for multiple add address:
The ability to add as many email you want on demand with a web form:

See it in action with jsfiddle here
(except the php processor)

Answer:

Send unlimited email with a web form # Form for continuously adding e-mails: <button type="button" onclick="emailNext();">Click to Add Another Email.</button> <div id="addEmail"></div> <button type="submit">Send All Emails</button> # Script function: <script> function emailNext() { var nextEmail, inside_where; nextEmail = document.createElement('input'); nextEmail.type = 'text'; nextEmail.name = 'emails[]'; nextEmail.className = 'class_for_styling'; nextEmail.style.display = 'block'; nextEmail.placeholder = 'Enter E-mail Here'; inside_where = document.getElementById('addEmail'); inside_where.appendChild(nextEmail); return false; } </script> # PHP Data Processor: <?php // ... // Add the rest of your $mailer here... if ($_POST[emails]){ foreach ($_POST[emails] AS $postEmail){ if ($postEmail){$mailer->AddAddress($postEmail);} } } ?>

So what it does basically is to generate a new input text box on every click with the name “emails[]”.

The [] added at the end makes it an array when posted.

Then we go through each element of the array with “foreach” on PHP side adding the:

    $mailer->AddAddress($postEmail);