Протокол расширений Интернет-почты многофункционального назначения

Понимание заголовков MIME

Заголовки MIME содержат информацию о протоколе.

MIME-Version

Это указывает на то, что сообщение имеет формат MIME. Он выглядит как:

MIME-Version: 1.0

Content-Type

Это указывает на тип содержимого сообщения, представленный в виде пары тип и подтип: text/plain, text/html, например. Многосоставной тип содержимого может содержать текст, HTML, вложения, изображения, аудио, видео и так далее.

Content-Type: multipart

Content-Transfer-Encoding

Указывает, используется ли схема кодирования бинарного текста поверх кодирования, указанного в типе содержимого. Если да, то указывает, какая именно. Здесь мы можем указать 7-битный, 8-битный и бинарный тип кодирования.

Encoded-Word

Заголовки сообщений SMTP обычно используют символы ASCII. Для не-ASCII символов вместо буквальной строки необходимо использовать синтаксис закодированного слова MIME. Формат выглядит следующим образом:

“=? charset ? encoding ? encoded text ?=”.

Multipart-Messages

Многосоставное сообщение MIME содержит границу в заголовке типа содержимого. Эта граница, которая не должна встречаться ни в одной из частей, помещается между частями, а также в начале и в конце тела сообщения, как показано ниже:

MIME-version: 1.0


 Content-type: multipart/mixed; boundary="frontier"

Это многосоставное сообщение в формате MIME.

--frontier

Content-type: text/plain

Это тело сообщения.

--frontier

Content-type: application/octet-stream

Content-transfer-encoding: base64

PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg

Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==

--frontier--

Каждая часть состоит из своего собственного заголовка содержимого и тела.

Multipart Subtypes

Стандарт MIME определяет различные подтипы многосоставных сообщений. Подтип указывается в заголовке “Content-Type” общего сообщения.

Следующий список включает наиболее commonly используемые подтипы.

  • Mixed: Multipart/mixed используется для отправки файлов с разными заголовками “Content-Type” встроенными. При отправке изображений или других легко читаемых файлов большинство почтовых клиентов будут отображать их встроенными.
  • Message: Часть сообщения содержит электронное сообщение.
  • Digest: digest — это простой способ отправить несколько текстовых сообщений. Тип содержимого по умолчанию для каждой части — “message/rfc822”.
  • Alternative: Альтернативный подтип указывает на то, что каждая часть является “альтернативной” версией одного и того же (или похожего) содержимого, каждая в другом формате, обозначенном заголовком “Content-Type”.

Наиболее часто multipart/alternative используется для электронной почты с двумя частями, одна из которых в простом тексте (text/plain), а другая в HTML (text/html). Часть с простым текстом обеспечивает обратную совместимость, в то время как HTML часть позволяет использовать форматирование и гиперссылки. Большинство почтовых клиентов предлагают пользователю возможность предпочесть простой текст перед HTML; это пример того, как локальные факторы могут повлиять на то, какую “лучшую” часть сообщения приложение выбирает для отображения.