Какая правильная новая строка в электронных письмах? LF или CRLF?

Недавно некоторые клиенты жаловались, что получают искаженные электронные письма. Отображались заголовки MIME, данные в кодировке base64 и т. Д. Вещи, которые должны были быть декодированы их почтовыми клиентами.

После расследования я обнаружил, что некоторые почтовые клиенты (например, веб-почта gmx.de) вставляли пустую строку после каждой другой.

Следуя догадке, я изменил свой код отправки почты, чтобы заменить все CRLF только на LF. И о чудо - почта пришла целиком.

Это странно, потому что RFC 5322 прямо заявляет, что

2.3. Тело

Тело сообщения - это просто строки символов US-ASCII. В только два ограничения на тело следующие:

o CR и LF ДОЛЖНЫ встречаться только вместе как CRLF; они НЕ ДОЛЖНЫ появляться независимо в теле.

А? Плохая электронная почта? Или я где-то ошибся? У других веб-сообщений (например, Gmail) нет проблем с этим, и действительно кажется, что у большинства людей нет проблем (так как жалоб мало).

Обратите внимание - я отправляю электронную почту через PHP mail () работает на Linux. Основным почтовым программным обеспечением является qmail, но я не уверен.

Похоже, что qmail не любит CRLF в аналогичных условиях . Может в этом проблема? Разве это не исправлено (эта страница не обновлялась 4 года)?

8
задан Pacerier 24 June 2013 в 09:23
поделиться