wake-up-neo.net

PHPMailer AddAddress ()

Ich weiß nicht, wie die Daten für die AddAddress PHPMailer-Funktion formatiert werden sollen. Ich muss die E-Mail an mehrere Empfänger senden, also habe ich es versucht 

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

aber ohne erfolg. Jede Hilfe wird geschätzt. 

32
kmunky

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

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

Sie könnten ein Array verwenden, um die Empfänger zu speichern, und dann eine for-Schleife verwenden. Ich hoffe, es hilft. 

64
doamnaT

Sie müssen die AddAddress-Methode einmal für jeden Empfänger aufrufen. So wie:

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

Um dies zu vereinfachen, sollten Sie dazu ein Array durchlaufen.

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

Besser noch, fügen Sie sie als Carbon Copy-Empfänger hinzu.

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

Um dies zu vereinfachen, sollten Sie dazu ein Array durchlaufen.

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

Einige großartige Antworten oben, mit diesen Informationen habe ich heute das gleiche Problem gelöst: 

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

Alle Antworten sind großartig. Hier ist ein Anwendungsbeispiel für mehrere Adressen: .__: Die Möglichkeit, beliebig viele E-Mail-Adressen mit einem Webformular hinzuzufügen:

Sehen Sie es in Aktion mit jsfiddle hier (Außer dem 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);}
    }
} 
?>

Grundsätzlich wird also bei jedem Klick ein neues Eingabetextfeld mit dem Namen "emails []" generiert.

Das am Ende hinzugefügte [] macht es zu einem Array, wenn es gepostet wird.

Dann gehen wir durch jedes Element des Arrays mit "foreach" auf der Seite PHP und fügen Folgendes hinzu:

    $mailer->AddAddress($postEmail);
0
Tarik