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 = "[email protected],[email protected],[email protected]";
$obj->AddAddress($to);
mais sans succès. Toute aide serait appréciée.
Vous devez appeler la fonction AddAddress
une fois pour chaque adresse e-mail à laquelle vous souhaitez envoyer. Il n'y a que deux arguments pour cette fonction: recipient_email_address
et recipient_name
. Le nom du destinataire est facultatif et ne sera pas utilisé s'il n'est pas présent.
$mailer->AddAddress('[email protected]', 'First Name');
$mailer->AddAddress('[email protected]', 'Second Name');
$mailer->AddAddress('[email protected]', 'Third Name');
Vous pouvez utiliser un tableau pour stocker les destinataires, puis utiliser une boucle for
. J'espère que ça aide.
Vous devez appeler la méthode AddAddress
une fois pour chaque destinataire. Ainsi:
$mail->AddAddress('[email protected]', 'Person One');
$mail->AddAddress('[email protected]', 'Person Two');
// ..
Pour rendre les choses faciles, vous devez parcourir un tableau pour le faire.
$recipients = array(
'[email protected]' => 'Person One',
'[email protected]' => 'Person Two',
// ..
);
foreach($recipients as $email => $name)
{
$mail->AddAddress($email, $name);
}
Mieux encore, ajoutez-les en tant que destinataires en copie conforme.
$mail->AddCC('[email protected]', 'Person One');
$mail->AddCC('[email protected]', 'Person Two');
// ..
Pour rendre les choses faciles, vous devez parcourir un tableau pour le faire.
$recipients = array(
'[email protected]' => 'Person One',
'[email protected]' => 'Person Two',
// ..
);
foreach($recipients as $email => $name)
{
$mail->AddCC($email, $name);
}
Quelques bonnes réponses ci-dessus, en utilisant ces informations, 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');
}
foreach ($all_address as $aa) {
$mail->AddAddress($aa);
}
Toutes les réponses sont géniales. Voici un exemple de cas d'utilisation de plusieurs adresses d'ajout: Possibilité d'ajouter autant de courriels que vous le souhaitez à la 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);}
}
}
?>
Il s’agit donc de générer une nouvelle zone de texte de saisie à chaque clic avec le nom "emails []".
Le [] ajouté à la fin en fait un tableau lors de la publication.
Ensuite, nous examinons chaque élément du tableau avec "foreach" du côté PHP en ajoutant le:
$mailer->AddAddress($postEmail);