Intereting Posts
Тестирование функциональности с помощью тестовой базы данных / данных для PHPUnit Переупорядочить строки записей базы данных через интерфейс, используя php ajax multi-threaded Как отключить (удалить) изображение в CodeIgniter Запрос POST для php mysql с использованием запросов python После отправки формы, когда в форме есть несколько вкладок, и на каждой вкладке есть вкладка таблицы (которая может добавить строку таблицы) Простая функция PHP для удаления последней строки из текстового файла, не работающего Выбрасывание исключений в автозагрузчике SPL? Captcha не проверяется на стороне jquery ..! Эффекты цепочки методов Как я могу повлиять на то, какие образы facebook отображаются рядом со ссылкой на мою страницу? Наследование и статические методы и свойства PHP Метод «email» для объекта «Symfony \ Component \ Form \ FormView» не существует в SqliGestionCongeBundle: по умолчанию: add.html.twig Memcache + Mysqli Не удалось получить mysqli_result Как заменить устаревшее значение set_magic_quotes_runtime в php?

Должен ли PHP_EOL использоваться в электронных письмах?

Я вижу много реализаций PHP-email, используя «\ r \ n», но я также видел некоторые из них, используя константу PHP_EOL. Какая из них лучше?

Спасибо за любую помощь
метрополия

Solutions Collecting From Web of "Должен ли PHP_EOL использоваться в электронных письмах?"

Если это означает, что вы заканчиваете строки в электронном письме, то это спецификация для электронной почты, на которую вы должны обратить внимание, а не то, что используется на какой-либо конкретной платформе.

Строки по электронной почте заканчиваются CRLF («\ r \ n») в соответствии с RFC2821

SMTP-команды и, если они не изменены служебным расширением, данными сообщения, передаются в «строках». Линии состоят из нуля или более символов данных, завершаемых символом последовательности символов ASCII «CR» (шестнадцатеричное значение 0D), за которым следует символ ASCII «LF» (шестнадцатеричное значение 0A). Эта последовательность завершения обозначается как в этом документе. Соответствующие реализации НЕ ДОЛЖНЫ распознавать или генерировать любой другой символ или последовательность символов в качестве ограничителя строк

Кажется довольно ясным, что в письме конец строки должен быть отправлен как \ r \ n. Отправка чего-либо еще может работать, но это неправильно, если вы не используете «расширение службы», и если вы тогда, вы, вероятно, знаете, что вам следует отправлять в любом случае.

Просто чтобы убедиться:

PHP_EOL будет влиять на электронную почту на стороне получателя . Он будет использовать новую комбинацию символов линии, которая является общей для системы, на которой работает ваш PHP-скрипт.

Поэтому, если у вас есть Linux / Unix-сервер, PHP_EOL приведет к \n и если у вас есть сервер Windows, это будет \r\n .

Сегодня не важно, что вы используете, и я думаю, что большинство приложений электронной почты Windows также могут обрабатывать только \n (afaik даже WordPad это понимает, это Notepad имеет проблемы).

\r\n – это новая строка Windows, если вы являетесь клиентами в основном пользователями Windows, тогда это будет хорошо.

Я также полагаю, что большинство клиентов электронной почты, отличных от Windows, все равно компенсируют это, поэтому \r\n не должно быть проблемой на Mac или * Nix.