PHPMailer AddAddress()

Je ne sais pas comment les données devraient être formatées pour la fonction AddAddress PHPMailer; j'ai besoin que l'e-mail soit envoyé à plusieurs destinataires alors j'ai essayé

$to = "me@domain.com,you@domain.net,she@domain.it";
$obj->AddAddress($to);

mais sans succès. Toute aide sera appréciée.

31
demandé sur Brian Tompsett - 汤莱恩 2009-11-20 17:26:45

5 réponses

vous devez appeler la fonction AddAddress une fois pour chaque adresse E-Mail que vous souhaitez envoyer. Il n'y a que deux arguments pour cette fonction: recipient_email_address et recipient_name . Le nom du destinataire est facultative et ne sera pas utilisée si pas présent.

$mailer->AddAddress('recipient1@domain.com', 'First Name');
$mailer->AddAddress('recipient2@domain.com', 'Second Name');
$mailer->AddAddress('recipient3@domain.com', 'Third Name');

vous pouvez utiliser un tableau pour stocker les destinataires et ensuite utiliser une boucle for . J'espère que cela aide.

61
répondu doamnaT 2014-06-30 09:23:15

vous devez appeler la méthode AddAddress une fois pour chaque destinataire. Comme ceci:

$mail->AddAddress('person1@domain.com', 'Person One');
$mail->AddAddress('person2@domain.com', 'Person Two');
// ..

pour faciliter les choses, vous devriez boucler un tableau pour le faire.

$recipients = array(
   'person1@domain.com' => 'Person One',
   'person2@domain.com' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddAddress($email, $name);
}

mieux encore, ajoutez - les comme destinataires de copie carbone.

$mail->AddCC('person1@domain.com', 'Person One');
$mail->AddCC('person2@domain.com', 'Person Two');
// ..

pour faciliter les choses, vous devriez boucler un tableau pour le faire.

$recipients = array(
   'person1@domain.com' => 'Person One',
   'person2@domain.com' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddCC($email, $name);
}
9
répondu Mahendra Jella 2014-06-19 10:25:20

quelques grandes réponses ci-dessus, en utilisant cette info voici ce que j'ai fait aujourd'hui pour résoudre le même problème:

$to_array = explode(',', $to);
foreach($to_array as $address)
{
    $mail->addAddress($address, 'Web Enquiry');
}
3
répondu Purple Tentacle 2016-02-07 23:20:06
foreach ($all_address as $aa) {
    $mail->AddAddress($aa); 
}
2
répondu user2720626 2014-06-02 12:26:56

toutes les réponses sont grandes. Voici un exemple de cas d'utilisation pour de multiples ajouter une adresse: La possibilité d'ajouter autant de courrier électronique que vous voulez sur demande avec un formulaire web:

Voir en action avec jsfiddle ici (sauf le processeur php)

### 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);}
    }
} 
?>

donc ce qu'il fait essentiellement est de générer une nouvelle zone de texte d'entrée sur chaque clic avec le nom"emails []".

[] ajouté à la fin en fait un tableau lorsque poster.

ensuite nous allons à travers chaque élément du tableau avec "foreach" du côté de PHP ajoutant le:

    $mailer->AddAddress($postEmail);
0
répondu Tarik 2017-03-28 15:46:05