Я проводил некоторые исследования/тесты стандартизированного формата электронной почты. В конечном итоге я хочу разработать парсер электронной почты для приложения. Я заметил некоторые различия в формате электронной почты, в основном между почтовыми клиентами (gmail, mac mail и т. д.) и службами почтового маркетинга (Constant Contact, Mail Chimp и т. д.).
Насколько я понимаю формат (RFC2822), \n\n
отделяет заголовки от тела. Похоже, что они согласуются с электронными письмами, полученными от служб электронного маркетинга. Однако почтовые клиенты, по-видимому, имеют дополнительный набор заголовков или инструкций для сообщения. См. примеры строк электронной почты ниже. Обратите внимание, что я вытащил эти строки через канал электронной почты. Также обратите внимание, что это только фрагменты заголовка/тела.
Служба электронного маркетинга:
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: 8bit
<html>
<head>
<title>Welcome to Banana Republic. Enjoy 25% off! </title>
<STYLE type="text/css">
.ReadMsgBody
{ width: 100%;}
.ExternalClass
{width: 100%;}
Здесь вы увидите разрыв строки, отделяющий заголовки от тела. Все хорошо по формату. Теперь посмотрим на почтовый клиент.
Почтовый клиент:
Mime-Version: 1.0 (Mac OS X Mail 7.0 (1816))
X-Mailer: Apple Mail (2.1816)
--Apple-Mail=_28DD752B-7960-488D-994F-DA9408FCA880
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=windows-1252
Testing Mac Mail. This is the body.
Вы видите, что в этом случае есть дополнительный набор «заголовков», которые кажутся инструкциями о том, как в этом случае Mac Mail отформатировал электронное письмо.
Я думаю, мой вопрос в том, является ли это допустимым форматом? Есть ли какая-то спецификация на него? Существуют ли какие-либо хорошо известные/задокументированные способы проверки и анализа формата этого типа, не зная, какой тип формата принимается?