Я не буду лгать. Я не совсем понимаю часть кода, который я использовал в заголовке для этой почтовой функции. Я пытался исправить это сам, и часть кода скопирована из других сообщений форума и т. Д.
$email
, $subject
, а также $msg
с переменными все в порядке, и электронные письма отправлялись, когда я проверял их ранее только с этими 3 переменными. Затем я добавил заголовок для раздела «От», и имя отправителя было исправлено (но электронные письма помещались в мою папку нежелательной почты — раздражает).
Теперь я пытаюсь добавить некоторые HTML-теги в $msg
и использовал последние 2 строки на моем $header
переменная, как и в других сообщениях на форуме, но это просто остановило отправку писем. Пожалуйста, посоветуйте мне, как решить проблему.
$headers = "From: website <[email protected]>" . PHP_EOL .
"BCC: [email protected]" . PHP_EOL .
"MIME-Version: 1.0 \r\n" . PHP_EOL .
"Content-Type: text/html; charset=UTF-8' \r\n";
$email = "[email protected]";
$subject = "Weekly Newsletter";
mail($email, $subject, $msg, $headers);
Спасибо, ребята, я комментирую раздел за напоминание о необходимости опубликовать ошибку. Это говорит:
Предупреждение: mail (): в строке «Additional_header» в /path/publishnewsletter.php в строке 45 есть несколько новых или неправильно сформированных символов новой строки.
"MIME-Version: 1.0 \r\n" . PHP_EOL .
слишком много новых строк. Не использовать PHP_EOL
совсем; использование \r\n
и только один раз.
У вас также есть дополнительная единичная цитата после charset
,
$headers =
"From: website <[email protected]>\r\n" .
"BCC: [email protected]\r\n" .
"MIME-Version: 1.0\r\n" .
"Content-Type: text/html; charset=UTF-8";
Посмотрите на это, это может помочь:
additional_headers
аргумент. Они считаются «множественными или искаженными символами новой строки»: \r\r, \r\0, \r\n\r\n, \n\n, \n\0
,additional_headers
только для заголовков. Сообщение электронной почты (многокомпонентное или нет, с ИК без вложений и т. Д.) Принадлежит message
аргумент, а не в заголовках. PHP_EOL
Отчет об ошибках безопасности PHP: https://bugs.php.net/bug.php?id=68776
Код C diff, как его исправить: http://git.php.net/?p=php-src.git;a=blobdiff;f=ext/standard/mail.c;h=448013a472a3466245e64b1cb37a9d1b0f7c007e;hp=1ebc8fecb7ef4c266a341cdc701f0686d6482242;hb=9d168b863e007c4e15ebe4d2eecabdf8b0582e30;hpb=eee8b6c33fc968ef8c496db8fb54e8c9d9d5a8f9