SMTP: \ r \ n \ r (без секунды \ n) как двойной перевод строки - PullRequest
2 голосов
/ 29 мая 2011

У меня есть парсер SMTP, который работает в основном нормально. Существует проблема при получении трафика от стороннего программного обеспечения, которое отправляет двойные символы новой строки как «\ r \ n \ r» (без второго «\ n»). В настоящее время такие соединения прекращаются как несовместимые SMTP. Может кто-нибудь объяснить, что именно RFC говорит о таких "забавных" двойных переводах строки? Могу ли я предположить, что программное обеспечение, которое отправляет подобные данные, действительно что-то делает не так?

Ответы [ 2 ]

5 голосов
/ 29 мая 2011

RFC2821. Раздел 2.3.7:

SMTP команды и, если не изменены по расширению услуги, сообщение
данные, передаются в «строках». Строки состоят из нуля или более данных
символы заканчиваются последовательностью ASCII символ "CR" (шестнадцатеричное значение 0D) сразу же после ASCII символ "LF" (шестнадцатеричное значение 0A).

http://www.ietf.org/rfc/rfc2821.txt

- Dave

0 голосов
/ 29 мая 2011

Различные операционные системы имеют различные представления для символов Newline.Ознакомьтесь с инструкциями для символов новой строки. .Кстати, среди программистов распространена практика одновременного использования \n и \r для предотвращения любых конфликтов в системе.Вам необходимо проверить, какой символ перевода строки поддерживается вашей системой.Если его \r, то вы получаете оба требуемых символа.Но если его \n, то ошибка лежит на отправителе.

...