В MIME определено пять дополнительных полей, которые могут размещаться в заголовке электронного сообщения.
Типичное применения MIME — пересылка графических изображений, аудио, документов, программ и даже просто текстовых файловMIME-Version: — поскольку старый стандарт RFC-822 все еще используется, а MIME, возможно, изменится и дополнится в будущем, почтовой программе необходимо знать, применен ли новый стандарт в конкретном письме или нет. Поэтому в заголовок введено новое поле "MIME-Version", объявляющее версию стандарта, в соответствии с которым написано данное письмо (например, "MIME-Version: 1.0").
Content-Type: — назначение этого поля — наиболее полное описание данных, содержащихся в теле письма, с тем чтобы почтовый агент (программа) получателя мог выбрать соответствующий механизм для их обработки. Впервые это поле было определено в RFC-1049, но имело более простой синтаксис. Стандарт MIME определяет семь типов данных, которые можно передавать в теле письма: текст (text); смешанный тип (multipart), почтовое сообщение (message), графический образ (image), аудиоинформация (audio), фильм или видео (video), приложение (application).
text — этот тип указывает на то, что в теле сообщения содержится текст. Это значение поля — по умолчанию. Основным подтипом типа text является plain — неразмеченный (планарный) текст (соответствует обычному неформатированному тексту и не требует специального программного обеспечения для отображения этого текста, за исключением поддержки национальных кодировок). Для обозначения размеченного текста используют подтип richtext (спецификация приведена в RFC-1341), а для обозначения гипертекста – подтип html. Для обозначения языковой кодировки текста используется параметр «charset», для некоторых подтипов, включая основной подтип, "text/plain". В интернетовской почте значением Content-Type по умолчанию является следующее: "text/plain; charset=us-ascii".
multipart — этот тип содержания тела почтового сообщения определяет смешанный документ. Смешанный документ может состоять из фрагментов разного типа. Тип multipart имеет ряд подтипов:
- mixed – (основной) задает сообщение, состоящее из нескольких фрагментов, которые разделены между собой границей, задаваемой в качестве параметра подтипа;
- alternative – позволяет организовать «вариабельный» просмотр почтового сообщения в зависимости от типа программы просмотра (например, сообщение передается в простом и html форматах, при этом почтовая программа показывает ту часть письма, которую она способна отобразить), то есть служит для предоставления одних и тех же данных в разных форматах;
- parallel – предназначен для составления такого почтового сообщения, части которого должны отображаться одновременно, что предполагает запуск сразу нескольких программ просмотра;
- digest – если каждая из частей тела письма имеет тип «message». Этот подтип идентичен подтипу 'multipart/mixed', но имеет другую семантику. Например, для 'digest' значением по умолчанию является не "text/plane", а "message/rfc822".
MIME-совместимая почтовая программа умеет представлять Multipart-письмо в достаточно понятном видеMIME-совместимая почтовая программа представит Multipart-письмо в достаточно понятном виде — например, покажет пользователю список частей, из которых оно состоит, и предложит просмотреть (если знает, как) или сохранить в файл содержимое каждой из них; или, если, скажем, одна из частей содержит текст, другая — картинку, а третья — оцифрованную музыку, то некоторые почтовые программы могут показать в одном и том же окне текст вместе с картинкой и одновременно проиграть музыку. На интерфейс представления нет стандартов, каждая программа делает это по-своему. Если же ваша почтовая программа не является MIME-совместимой, то при прочтении такого письма вы увидите его содержимое «сплошняком» — то есть почтовые заголовки, чередующиеся (в общем случае) с кодированным содержимым частей. В этом случае рекомендуется сохранить письмо в файл и, возможно, «разрезать» его на части, начинающиеся с заголовка (не убирая самих заголовков, так как в них хранится информация об одержимом типе его кодировки), так как разные части могут быть кодированы по-разному, и для их декодирования могут потребоваться разные программы-декодеры.
- message (письмо в письме) — тело, содержащее данные типа «message», само является письмом или частью письма, полностью отформатированного в соответствии со стандартом RFC-822, которое, в свою очередь, может содержать свое собственное поле заголовка "Content-Type". Данный тип предназначен для работы с обычными почтовыми сообщениями, которые, однако, не могут быть переданы по почте по разного рода причинам. Подтипы:
rfc822 — этот подтип указывает, что тело письма содержит вложенное письмо в стандарте RFC-822 (для этого вложенного письма не требуется наличия полей «From», «Subject»). Несмотря на использование числа «822», тело, имеющее подтип "message/rfc822", может включать дополнительную информацию в соответствии со стандартом MIME. Другими словами, письмо "message/rfc822" может быть MIME-письмом;
partial – предназначен для передачи одного большого сообщения по частям и последующей автоматической сборки у получателя;
external-body – позволяет ссылаться на внешние, относительно сообщения, информационные источники. Используется, чтобы указать, что тело письма очень большое и находится вне письма;
image — для описания графических образов. Наиболее часто используются файлы в формате JPEG, GIF, TIF и т.д.;
audio — для описания аудиоинформации. Основные подтипы: — basic — аудиоданные, сохраненные в 8-бит формате mu-law ISDN; — midi — аудиоданные, сохраненные в MIDI-формате; — wav — аудиоданные, сохраненные в WAV-формате;
video — для передачи фильмов. Наиболее популярным является формат MPEG, а также Quicktime;
application — обычно используется при передаче двоичных (бинарных) данных для последующего промежуточного преобразования (например, при поступлении данных application/msword, браузер спросит, нужно ли запустить Word для просмотра документа; при отсутствии нужного приложения браузер спросит, в каком файле сохранить данные). Подтипы: — octet-stream – основной подтип, предназначен для неинтерпретируемых двоичных данных, для которых рекомендуемым действием является предложение сохранить файл на диске; — PostScript – дополнительный подтип, применяется при пересылке PostScript-документов в теле письма. Необходимо учесть, что в будущем ожидается заметное увеличение числа регистрированных типов и особенно подтипов содержимого писем. Если почтовая программа встретит неизвестное ей значение поля Content-type, она должна интерпретировать содержимое этого письма как "application/octet-stream". Часто используемый параметр name позволяет указать имя файла. Например:
Content-Type: application/msword; name="readme.doc"
Это полезно при получении файлов через HTTP, причем этот параметр может применяться и для других типов — таких, как image или audio. Например:
Content-Type: image/gif; name="myfoto.gif"
Content-Transfer-Encoding: – поле типа кодирования сообщения. Многие типы данных, пересылаемых через e-mail требуют «натурального» представления, то есть 8-битный набор символов либо двоичный код (что для машины — одно и то же, только представимо для пользователя по-разному). В таком виде данные не могут быть переданы по 7-битным почтовым протоколам, например, RFC-821, который, к тому же, ограничивает длину строки 1000 символами. Однако при работе в разнородных почтовых средах необходимо определить механизм их представления в стандартном виде (US ASCII). Для этого существуют процедуры кодирования такого сорта данных (наиболее широко применяемая – uuencode). Поле типа кодирования почтового сообщения введено для того, чтобы при получении данные были правильно распакованы. Это поле может принимать, в частности, следующие значения: 7bit, 8bit, quoted-printable, base64, binary, x-типы.
Стандарт MIME определяет еще два дополнительных поля: Content-ID и Content-Description. Первое поле определяет уникальный идентификатор содержания, а второе служит для комментария к содержанию. Программами просмотра эти поля обычно не отображаются.
Жизнь не стоит на месте, появляются новые типы и подтипы стандарта MIME. Для новых, экспериментальных типов используются значения, начинающееся с "X-". Уже зарегистрированные значения никогда не должны начинаться с префикса "X-". Новые типы и подтипы можно зарегистрировать в организации Internet Assigned Numbers Authority (IANA, Комитет по присвоению номеров в Интернете). Протокол MIME уже разросся и предусматривает множество подтипов, не описанных в исходной спецификации. Ожидается, что со временем появятся как новые подтипы, так, возможно, и новые типы данных.
Если вы желаете узнать больше о MIME, первое, что следует сделать, — это получить экземпляр документа RFC-1521 "MIME (Miltipurpose Internet Mail Extensions), Part One: Mechanisms for Specifying and Desribing the Format of Internet Message Bodies" ("Многоцелевые расширения электронной почты для Internet, MIME, часть I: механизмы указания и описания форматов сообщений Интернет"). В другом документе, RFC-1522, представляющем собой продолжение RFC-1521, описывается, как использовать в заголовках электронных сообщений символы в отличном от ASCII коде. В число других справочников, которые могут заинтересовать вас, входят RFC-1741 ("MIME Content Type for BinHex Encoded Files"), RFC-1740 ("MIME Encapsulation of Macintosh Files"), RFC-1563 ("The Text/Enriched MIME Content-Type") и RFC-1344 ("Implications of MIME for Internet Mail Gateways").
Ссылки по теме
- Статья Джеффа Просиса о расширенных возможностях Internet-почты
- Чтение заголовков электронных писем (перевод)
- Почтовый стандарт MIME (RFC-1521)
Статья получена: hostinfo.ru