PHP отправка электронной почты BCC - PullRequest
17 голосов
/ 02 марта 2012

Я знаю, что есть несколько похожих вопросов, но я просто не могу заставить их работать.

Хорошо, у меня есть список писем, собранных из моей базы данных в переменной $ emailList. Я могу получить свой код для отправки электронного письма из формы, если я помещу переменную в раздел $to, но Я не могу заставить его работать с ОЦК. Я даже добавил письмо к $to, если это так, но это не имеет значения.

Вот мой код.

$to = "name@mydomain.com";
$subject .= "".$emailSubject."";
$headers .= 'Bcc: $emailList';
$headers = "From: no-reply@thepartyfinder.co.uk\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.");
}

Я пробовал оба кода:

$headers .= 'Bcc: $emailList';

и

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

Дело не в том, что электронные письма не разделены, потому что они есть. Я знаю, потому что это работает, если я добавлю $emailList в раздел $to.


Я должен добавить, игнорировать $message биты и прочее HTML. Я не предоставил все это, поэтому он отсутствует в этом коде.

Ответы [ 2 ]

45 голосов
/ 02 марта 2012

У вас есть $headers .= '...';, за которым следует $headers = '...';;вторая строка перезаписывает первую.

Просто поставьте $headers .= "Bcc: $emailList\r\n";, скажем, после строки Content-type, и все должно быть в порядке.

На примечании стороны, To обычнотребуется;в противном случае почтовые серверы могут пометить ваше сообщение как спам.

$headers  = "From: no-reply@thepartyfinder.co.uk\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";
11 голосов
/ 02 марта 2012

Вы устанавливали BCC, но затем перезаписывали переменную с FROM

$to = "name@mydomain.com";
     $subject .= "".$emailSubject."";
 $headers .= "Bcc: ".$emailList."\r\n";
 $headers .= "From: no-reply@thepartyfinder.co.uk\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.");
     }
...