Я вижу много реализаций PHP-email, используя «\ r \ n», но я также видел некоторые из них, используя константу 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.