2016-08-07 4 views
0

Ich versuche, eine E-Mail an jeden Empfänger einer Liste zu senden (der Empfänger wird aus einer Datenbankabfrage genommen, und die E-Mail wird an alle "Überprüft" gesendet, unter Verwendung von $_POST['enviar'] in jedem Kontrollkästchen, um jede zu referenzieren.Warum PHP Mailer innerhalb einer Foreach zum Durchlaufen aller Empfänger nicht funktioniert? Was stimmt nicht mit meiner Forearch-Schleife?

Also gehe ich davon aus, dass ich

der Code funktioniert wie vorgesehen, wenn mail(), aber es funktioniert nicht, wenn ich mit PHPMailer es.

nur die E-Mail an den ersten Empfänger senden mache ich die foreach falsch? Wie kann ich es korrigieren?

if ($correo=mysqli_fetch_array(mysqli_query($conectar,$query))) { 
     $total=array(); 
     $total=count($_POST['enviar']); 
     $id = $_POST['enviar'];    
     foreach ($id as $item) { 
       include 'private/enviarMails.php'; //PHP Mailer credentials 
       $mail->addAddress($item); 
       $mail->Subject = $correo['mailAsunto']; 
       $mail->Body = $correo['mailMensaje']; 
       if(!$mail->send()) { 
        echo 'El mail no se mandó: ' . $mail->ErrorInfo; 
       } else { echo 'Se envió un correo a '.$item;} 


     } 
    } else { echo 'No se pudieron enviar los correos'; } 
     mysqli_close($conectar); 
} 
+2

Sie erkennen, dass Sie bei jeder Iteration dieser Schleife die gleiche Datei einschließlich, nicht wahr? –

+0

Ja, die Datei enthält meine SMTP-Anmeldeinformationen. – Rosamunda

+3

Richtig, aber müssen Sie diese Datei mehr als einmal hinzufügen? Ich denke nicht. –

Antwort

4

Sie fügen Ihre Anmeldeinformationen in jede Seitenschleife ein.

Wechsel:

foreach ($id as $item) { 
    include 'private/enviarMails.php'; //PHP Mailer credentials 
    $mail->addAddress($item); 

An:

include 'private/enviarMails.php'; //PHP Mailer credentials 
foreach ($id as $item) { 
    $mail->addAddress($item); 
Verwandte Themen