web-dev-qa-db-fra.com

PHP Email envoyant BCC

Je sais qu'il y a quelques questions similaires à cela, mais je ne peux tout simplement pas le faire fonctionner.

Ok, j'ai une liste d'e-mails extraits de ma base de données dans une variable appelée $ emailList. Je peux obtenir mon code pour envoyer un e-mail à partir d'un formulaire si je mets la variable dans le $to section mais je n'arrive pas à le faire fonctionner avec bcc. J'ai même ajouté un e-mail au $to au cas où ce serait ça mais ça ne fait aucune différence.

Voici mon code.

$to = "[email protected]";
$subject .= "".$emailSubject."";
$headers .= 'Bcc: $emailList';
$headers = "From: [email protected]\r\n" . "X-Mailer: php";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = '<html><body>';
$message .= 'THE MESSAGE FROM THE FORM';

if (mail($to, $subject, $message, $headers)) {
    $sent = "Your email was sent!";
} else {
    $sent = ("Error sending email.");
}

J'ai essayé les deux codes:

$headers .= 'Bcc: $emailList';

et

$headers .= 'Bcc: '.$emailList.';

Ce n'est pas que les e-mails ne soient pas séparés parce qu'ils le sont. Je sais que c'est parce que ça marche si je mets $emailList dans le $to section.


Je devrais ajouter, ignorer le $message bits et les éléments HTML. Je n'ai pas fourni tout cela, c'est pourquoi il manque dans ce code.

17
Ben Toms

Vous avez $headers .= '...'; suivi par $headers = '...';; la deuxième ligne écrase la première.

Mettez simplement le $headers .= "Bcc: $emailList\r\n"; dire après le Content-type line et ça devrait aller.

Sur une note latérale, le To est généralement requis; Sinon, les serveurs de messagerie pourraient marquer votre message comme spam.

$headers  = "From: [email protected]\r\n" .
  "X-Mailer: php\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "Bcc: $emailList\r\n";
46
gregheo

Vous étiez en train de définir BCC mais en remplaçant ensuite la variable par le FROM

$to = "[email protected]";
     $subject .= "".$emailSubject."";
 $headers .= "Bcc: ".$emailList."\r\n";
 $headers .= "From: [email protected]\r\n" .
     "X-Mailer: php";
     $headers .= "MIME-Version: 1.0\r\n";
     $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
 $message = '<html><body>';
 $message .= 'THE MESSAGE FROM THE FORM';

     if (mail($to, $subject, $message, $headers)) {
     $sent = "Your email was sent!";
     } else {
      $sent = ("Error sending email.");
     }
12
Bot