Я занимаюсь некоторыми исследованиями/испытаниями в стандартизованном формате электронной почты. В конечном счете, я ищу разработку парсера для электронной почты для приложения. Я замечаю некоторые различия в формате электронной почты, в основном между почтовыми клиентами (gmail, mac mail и т. Д.) И службами электронной почты (постоянный контакт, почтовый шимпанзе и т. Д.).Форматирование электронной почты от почтовых клиентов
Мое понимание формата (RFC2822) заключается в том, что \n\n
отделяет заголовки от тела. Они, похоже, согласуются с сообщениями электронной почты, полученными от служб маркетинга электронной почты. Однако у клиентов электронной почты есть дополнительный набор заголовков или инструкций для сообщения. См. Примеры строк электронной почты ниже. Обратите внимание, что я вытащил эти строки по электронной почте. Также обратите внимание, что это только фрагменты разделения заголовка/тела.
Email Marketing Service:
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%;}
Здесь вы увидите разрыв линии разделения заголовков от тела. Все хорошее в соответствии с форматом. Теперь посмотрите на почтовый клиент.
Email клиент:
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 отформатировал электронную почту.
Я думаю, мой вопрос в том, является ли это допустимым форматом? Есть ли какие-либо спецификации? Есть ли хорошо известные/документированные способы проверки и анализа этого типа формата, не зная, какой тип формата будет получен?
Вам нужно посмотреть несколько других RFC, таких как RFC2045-2047 (MIME encodings) и как они описывают многостраничные сообщения. Я предполагаю, что ваш второй фрагмент не включает Content-Type: multipart/mixed; border = Apple-Mail = _28DD752B-7960-48 8D-994F-DA9408FCA880, который я ожидаю увидеть как часть этого (где вы можете иметь несколько подразделов, каждый из которых соответствует правилам RFC2822). Правильный и полный анализ по электронной почте является HARD. То, что разрешено, распространяется повсюду. – Joe
Обратите внимание на эту ссылку, которая ссылается на ряд связанных с электронной почтой RFC: http://www.lsoft.com/manuals/Maestro/2.1/Users/WebHelp/Appendix_D_Email_Related_RFCs.htm – Joe
@Joe - Content-Type: multipart/alternative на самом деле , Не уверен, что это имеет значение, но я просматриваю ссылки RFC, которые вы указали, чтобы узнать, могу ли я узнать больше. – Chris