2016-09-13 5 views
0

Wie im Titel, ich kann nicht eine E-Mail an mehrere Empfänger senden, weil ich folgende Fehlermeldung abrufen:PHPMailer: Senden von E-Mails an mehrere Empfänger Fehler

Message could not be sent. Mailer Error: You must provide at least one recipient email address.

Ich verwende diesen Code:

$stmt=$db->prepare("select email from app_users where enabled=1"); 
if (!$stmt) { 
    log_msg($db->error); 
    die(); 
} 
if (!test_execute($stmt->execute())) die("ERROR"); 
$emailto=fetchArray2($stmt); 
$stmt->close(); 
foreach ($emailto as $contacts) { 
    $mail->AddAddress($contacts); 
} 

Was ist los?

print_r ($ emailto);

Array 
(
[0] => Array 
    (
     [email] => [email protected] 
    ) 

[1] => Array 
    (
     [email] => [email protected] 
    ) 

[2] => Array 
    (
     [email] => [email protected] 
    ) 

)

+0

'$ mail-> AddAddress ($ Kontakte-> E-Mail)'? – Natrium

+1

Sie haben ein Array von Arrays, und Sie greifen nur auf das Top-Level-Array zu, so dass Sie ziemlich buchstäblich das Äquivalent von '-> AddAddress (Array())' –

Antwort

1

@Natrium hatte es fast geschafft. Sie greifen nicht korrekt auf Ihre Array-Elemente zu. Machen Sie es wie folgt aus:

foreach ($emailto as $contacts) { 
    $mail->addAddress($contacts['email']); 
} 

Es ist auch eine gute Idee, Rückgabewerte zu überprüfen, vielleicht:

foreach ($emailto as $contacts) { 
    if (!$mail->addAddress($contacts['email'])) { 
    echo 'Address rejected: '.$contacts['email']; 
    } 
} 
+0

es funktioniert wie ein Charme! Danke für die Lösung und den guten Punkt beim Überprüfen. – Otto

Verwandte Themen