Frage

Ich weiß nicht, wie die Daten für AddAddress PHPMailer Funktion formatiert werden; Ich muss die E-Mail an mehrere Empfänger gesendet werden soll, so habe ich versucht,

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

aber ohne Erfolg. Jede Hilfe wird sehr geschätzt.

War es hilfreich?

Lösung

Sie müssen die AddAddress Funktion aufzurufen, einmal für jede E-Mail Adresse, die Sie senden möchten. Es gibt nur zwei Argumente für diese Funktion: recipient_email_address und recipient_name. Der Empfängername ist optional und wird nicht verwendet werden, wenn nicht vorhanden.

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

Sie können einen Array verwenden, um den Empfänger zu speichern und dann eine for Schleife verwenden. Ich hoffe, es hilft.

Andere Tipps

Sie müssen die AddAddress Methode aufrufen einmal für jeden Empfänger. Wie so:

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

Um die Dinge einfach zu machen, sollten Sie Schleife durch eine Anordnung, dies zu tun.

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

Noch besser wäre es, fügen Sie sie als Carbon Copy Empfänger.

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

Um die Dinge einfach zu machen, sollten Sie Schleife durch eine Anordnung, dies zu tun.

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

Einige große Antworten oben, unter Verwendung dieser Informationen hier ist das, was ich heute habe das gleiche Problem zu lösen:

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

sind alle Antworten groß. Hier ist ein Beispiel Anwendungsfall für mehr Add-Adresse: Die Fähigkeit, so viele E-Mail hinzufügen möchten Sie auf Wunsch mit einem Web-Formular:

Sehen sie in Aktion mit jsfiddle hier (Mit Ausnahme des PHP-Prozessor)

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

Also, was es tut, ist im Grunde ein neues Texteingabefeld auf jedem Klick mit dem Namen „E-Mail []“ zu erzeugen.

Die [] am Ende hinzugefügt, um es einen Array macht, wenn geschrieben.

Dann gehen wir durch jedes Element des Arrays mit „foreach“ auf PHP Seite Hinzufügen des:

    $mailer->AddAddress($postEmail);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top