Какие поля заголовка письма могут иметь параметры? - PullRequest
0 голосов
/ 08 сентября 2011

Я пытаюсь выяснить, какие универсальные подпрограммы можно использовать в библиотеке разбора электронной почты.

Мне известны два поля MIME, которые часто принимают параметры:

Content-Type: application/x-stuff;
 title*=us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A

(пример изhttp://tools.ietf.org/html/rfc2231)

и

Content-Disposition: attachment; filename=genome.jpeg;
 modification-date="Wed, 12 Feb 1997 16:29:51 -0500";

(пример из http://tools.ietf.org/html/rfc2183)

Они единственные - или это универсальный механизм? http://tools.ietf.org/html/rfc822говорит только о «структурированных» полях - вышеприведенные поля точно «структурированы», но пример в rfc822 касается поля адреса, которое имеет другую структуру - список адресов.

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

Заголовок Received: обычно структурирован, хотя спецификации довольно расплывчаты и серьезных усилий по стандартизации не предпринимается. Самая близкая вещь, напоминающая стандарт де-факто, - это Sendmail, который более или менее похож на Postfix. Подпись DKIM структурирована довольно умным способом. Специальный заголовок, вставленный SpamAssassin, имеет структуру; он говорит вам, почему сообщение было классифицировано как спам. Есть еще куча косточек, но это должно дать вам кое-что, чтобы начать жевать. Ни один из приведенных здесь примеров не использует синтаксис Mime Content-xxx.

1 голос
/ 08 сентября 2011

Насколько я знаю, в электронной почте есть еще два поля MIME:

MIME-Version: 1.0

, который не имеет параметров, и

Content-Transfer-Encoding: ...
У

тоже нет ни одного.

Не существует общего «правила параметра поля заголовка MIME», просто посмотрите стандартное определение для каждого поля заголовка.

(РЕДАКТИРОВАТЬ :) После ваших дополнений к исходному вопросу вы, конечно, можете использовать универсальные подпрограммы. Имейте в виду, что разбор заголовка электронной почты является нетривиальной задачей (см. RFC 2822). Эти универсальные подпрограммы приходят мне в голову:

  • Удалить комментарии в полях заголовка (обозначено круглыми скобками).
  • Обрабатывать отступы строки табуляции (строки продолжения)
  • Разбор даты / времени RFC822 (огромная задача:)
  • Ручка цитата
  • Парсинг адресов электронной почты (разные формы)
  • Обработка кодировки символов (кодировка заголовка MIME)

Однако все это, конечно, существует во многих библиотеках с открытым исходным кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...