Я пытаюсь отправить электронную почту через Bcc, и я ожидал, что они были скрыты, но, похоже, нет. Может быть мой код не верный?
// grab all emails from txt file
$myfile = fopen("database-email.txt", "r") or die("Unable to open file!");
$allEmails = fread($myfile,filesize("database-email.txt"));
fclose($myfile);
$afzender = "[email protected]";
$to = '[email protected]';
$subject = 'Nieuwsbrief de Wisselslag';
$headers = "From: " . $afzender . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "Bcc: " . $allEmails . "\r\n";
if (mail($to, $subject, $message, $headers)) {
echo 'Bericht is verstuurd!';
} else {
echo 'There was a problem sending the email.';
}
Так что у меня есть database-email.txt
файл, в котором хранятся все электронные письма, разделенные запятыми друг от друга следующим образом:
[email protected],
[email protected],
[email protected],
[email protected],
При отправке на мою учетную запись Gmail, я вижу это:
Как это возможно, чтобы я мог видеть, куда электронная почта также отправляется?
В списке рассылки не должно быть символа новой строки.
Сделайте это одной строкой:
$allEmails = str_replace(array("\n","\r"), '', $allEmails);
// [email protected], [email protected], [email protected], [email protected]
Как уже упоминалось в моем комментарии, любой список получателей не должен содержать символы новой строки.
Я бы изменил формат вашего файла на одну строку
[email protected],[email protected],[email protected],[email protected]
Я бы также использовал file_get_contents()
вместо fopen
/ fread
,
Кроме того, сохраняйте адреса электронной почты в каждой строке без запятых, например
[email protected]
[email protected]
[email protected]
[email protected]
и использовать file()
а также implode()
$allEmails = implode(',' file(__DIR__ . '/database-email.txt',
FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES));