PHP отправка электронной почты BCC

#php #phpmailer #bcc

#php #Адрес электронной почты #bcc

Вопрос:

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

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

Вот мой код.

 $to = "name@mydomain.com";
$subject .= "".$emailSubject."";
$headers .= 'Bcc: $emailList';
$headers = "From: no-reply@thepartyfinder.co.ukrn" . "X-Mailer: php";
$headers .= "MIME-Version: 1.0rn";
$headers .= "Content-Type: text/html; charset=ISO-8859-1rn";
$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-материал. Я не предоставил всего этого, поэтому в этом коде это отсутствует.

Комментарии:

1. У вас отсутствует » r n» после вашего заголовка BCC, а затем вы перезаписываете заголовки в следующей строке с помощью From .

2. Я также пробовал с r n. Итак, куда мне поместить bcc? Обязательно ли это должно быть в определенном месте?

3. @drew010, ваш комментарий должен быть опубликован в качестве ответа.

4. @drew010 большое спасибо! Теперь это работает. Если вы опубликуете это как ответ, я приму его.

5. @BenToms не беспокойтесь, я был ленив, рад, что у вас это заработало сейчас.

Ответ №1:

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

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

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

 $headers  = "From: no-reply@thepartyfinder.co.ukrn" .
  "X-Mailer: phprn";
$headers .= "MIME-Version: 1.0rn";
$headers .= "Content-Type: text/html; charset=ISO-8859-1rn";
$headers .= "Bcc: $emailListrn";
  

Комментарии:

1. У меня никогда не было проблемы, когда в заголовках не указывалось ‘Кому’.

2. Я в этом не сомневаюсь. Я просто имею в виду, что существует множество почтовых серверов и фильтров для спама, и электронные письма с отсутствующими / странными битами заголовка обычно получают более высокие оценки за спам.

Ответ №2:

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

 $to = "name@mydomain.com";
     $subject .= "".$emailSubject."";
 $headers .= "Bcc: ".$emailList."rn";
 $headers .= "From: no-reply@thepartyfinder.co.ukrn" .
     "X-Mailer: php";
     $headers .= "MIME-Version: 1.0rn";
     $headers .= "Content-Type: text/html; charset=ISO-8859-1rn";
 $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.");
     }
  

Комментарии:

1. rn Должно быть в двойных кавычках, иначе это воспринимается буквально. Только у того, кто находится на BCC , была эта проблема.