Наткнулся на несколько писем, которые не соответствуют RFC.
authentication-results: spf=none (sender IP is ) smtp.mailfrom=**@********.**;
Content-Type: multipart/related;
boundary="_004_2039b206f2a54788ba6a101978bd3f82DBXPR07MB013eurprd07pro_";
type="multipart/alternative"
MIME-Version: 1.0
Например, в приведенном выше письме есть пустая строка в заголовке (перед Content-Type). Библиотеки, которые строго соблюдают RFC (например, https://github.com/mikel/mail), выиграли ;t быть в состоянии разобрать их. Apple Mail, Thunderbird справляются с такими письмами.
Пытался просмотреть кодовую базу Thunderbird, будучи незнакомым с C++, мне удалось найти https://github.com/mozilla/releases-comm-central/blob/1f2a40ec2adb448043de0ae96d93b44a9bfefcd1/mailnews/mime/src/mimemsg.cpp
Может ли кто-нибудь указать мне на часть кодовой базы Thunderbird, где происходит синтаксический анализ почты, или на любые библиотеки/приложения с открытым исходным кодом, которые обрабатывают такие письма без жалоб.
ИЗМЕНИТЬ:
Шестнадцатеричный дамп пустой строки. Он содержит пробел.
00013e0: 2a2a 2a2a 2a2a 2e2a 2a3b 0d0a 200d 0a43 ******.**;.. ..C
00013f0: 6f6e 7465 6e74 2d54 7970 653a 206d 756c ontent-Type: mul
0001400: 7469 7061 7274 2f72 656c 6174 6564 3b0d tipart/related;.
blank
на самом деле не пуста, но имеет пробел, что сделало бы вашу проблему ошибкой в реализации ruby, а не функцией в других реализациях - не могли бы вы добавить восьмеричный/шестнадцатеричный дамп проблемная строка* - person Soren   schedule 28.06.2014mail
, вероятно,trims
строк перед их синтаксическим анализом — что приводит к сбою кода в синтаксисе продолжения. - person Soren   schedule 28.06.2014