email — отправка только почты BCC в Stack Overflow

Я извлекаю адреса электронной почты из своего списка рассылки в текстовом файле. со следующим:

clearstatcache();

$file = file("test.txt");

for ($i = 0; $i < 20; $i++) {
$emails .= $file[$i];
}

Как вы можете видеть, я сохранил их в $ электронных письмах. и если я отправляю электронные письма $, я получаю перечисленные электронные письма:
[email protected], [email protected], [email protected] и т. д.

Теперь для отправки BCC:

// recipient
$to  = '';

// subject
$subject = 'The subject is here';

// message
$message = 'The body of the email is here';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'From: John Doe <[email protected]>' . "\r\n";
$headers .= 'Bcc: '.$emails . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);

Письмо не отправляется в список, только на [email protected] — так что это не работает, и происходит что-то неожиданное — по какой-то странной причине 20 писем из цикла for перечислены в верхней части тела письма когда получено [email protected]

Когда я пытаюсь ввести вручную, он работает отлично. поэтому приведенный ниже код работает, но ручной ввод контрпродуктивен тому, чего я пытаюсь достичь.

$test = "[email protected], [email protected], [email protected],";

// recipient
$to  = '';

// subject
$subject = 'The subject is here';

// message
$message = 'The body of the email is here';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'From: John Doe <[email protected]>' . "\r\n";
$headers .= 'Bcc: '.$test . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);

Таким образом, похоже, что проблема в переменной, но я не могу понять, почему она не работает, потому что $ emails хорошо отображает все адреса электронной почты.

1

Решение

Пробел автоматически добавляется в конец строки. Это изменение в цикле for устраняет проблему.

$emails .= trim($file[$i]);
0

Другие решения

Вы должны закрыть цикл после:
mail ($ to, $ subject, $ message, $ headers);
}
а также
$ headers. = ‘Bcc:’. $ emails. «\ Г \ п»;
является
$ headers. = ‘Bcc:’. $ file [$ i]. «\ Г \ п»;

Таким образом, цикл будет запускать всю программу 20 раз. Не помещайте получателя в $ to, так как в противном случае отправка будет также 20 раз.
Проверено и прекрасно работает.

0

По вопросам рекламы [email protected]