For faster navigation, this Iframe is preloading the Wikiwand page for MIME.

MIME

Материал из Википедии — свободной энциклопедии

MIME

MIME (/maɪm/, англ. Multipurpose Internet Mail Extensions — многоцелевые расширения интернет-почты) — стандарт, описывающий передачу различных типов данных по электронной почте, а также, в общем случае, спецификация для кодирования информации и форматирования сообщений таким образом, чтобы их можно было пересылать по Интернету.

MIME определяет механизмы для передачи разного рода информации внутри текстовых данных (в частности, с помощью электронной почты), а именно: текст на языках, для которых используются кодировки, отличные от ASCII, и нетекстовые данные, такие, как картинки, музыка, фильмы и программы. MIME является также фундаментальным компонентом коммуникационных протоколов, таких как HTTP, которым нужно, чтобы данные передавались в контексте сообщений, подобных e-mail, даже если данные реально не являются e-mail.

Основной формат электронных сообщений определен в RFC 5322, который является обновлённой версией RFC 2822 (который, в свою очередь, является обновлённой версией RFC 822). Эти стандарты определяют похожие форматы для текстовых e-mail-заголовков и содержимого и правил, относящихся к общеиспользуемым полям, таким как To:, Subject:, From: и Date:. MIME определяет набор e-mail-заголовков для определения дополнительных атрибутов сообщения, включая тип контента, и определяет множество кодировок, которые могут быть использованы для представления 8-битных бинарных данных с помощью символов из 7-битного ASCII. MIME также определяет правила для кодирования символов из Extended ASCII (с кодами 128—255) в заголовках e-mail-сообщения, таких как Subject:.

MIME расширяем для новых типов — его определение включает метод для регистрации новых типов контента и других атрибутов.

Организация данных

[править | править код]

Формат MIME поддерживает передачу нескольких сущностей в пределах одного сообщения. Причём сущности могут передаваться не только в виде одноуровневой последовательности, но и в виде иерархии с вложением элементов друг в друга. Для обозначения множественного содержимого используются медиа-типы multipart/*. Работа с такими типами осуществляется по общим правилам, описанным в RFC 2046 (если иное не определено конкретным медиа-типом). Если получателю неизвестно как работать с типом, то он обрабатывает его так же, как multipart/mixed.

Для передачи множественного сообщения в заголовок Content-Type добавляется параметр boundary (граница), который обозначает последовательность символов, разделяющих части сообщения. Граница может состоять из цифр, букв и символов '()+_,-./:=?. При использовании специальных символов (не цифр и букв) значение параметра boundary следует заключать в двойные кавычки ". Максимальная длина границы — 70 символов[1].

Начало каждой части сообщения обозначается строкой --boundary. Конец последнего сообщения обозначается строкой --boundary--. Самые первые символы переноса строки CRLF (коды 13 и 10), которыми начинаются и заканчиваются пограничные строки, не входят в содержимое самой части. Если за ними следуют ещё переносы строк, то они уже принадлежат включаемой части.

Перед первой частью и после последней может быть дополнительный текст. Он называется преамбулой и эпилогом, соответственно. В протоколе HTTP эти элементы игнорируются. В сообщении электронной почты преамбула может содержать текст, выводимый клиентами электронной почты, не понимающими формата MIME.

В самом начале включаемой части располагаются заголовки, описывающие её содержимое (Content-Type, Content-Length и т. п.). Перед непосредственно телом части обязательно должна быть пустая строка, даже если заголовки отсутствуют. Если не определён Content-Type, то он берётся по умолчанию — text/plain.

Тест Марка Криспина

[править | править код]

Марк Криспин (Mark Crispin), автор протокола IMAP, написал тест для проверки корректности обработки MIME[2]. [3] Тест представляет собой письмо в формате mbox:

Это сумасшедшее письмо! В нём около 30 вложенных друг в друга частей. Очень хороший тест

разработчики SquirrelMail[4]
RFC Дата Тема Обновлён в (Updated by) Обновляет (Updates) Заменён (Obsoleted by) Заменяет (Obsoletes)
Устаревшие
RFC 822 13 августа 1982 STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES
(Формат электронной почты)
1123, 1138, 1148, 1327, 2156 2822 733 (NIC #41952)
RFC 2048 ноябрь 1996 MIME Part Four: Registration Procedures 3023  — 4288, 4289 1521, 1522, 1590
Текущие
RFC 1556 декабрь 1993 Handling of Bi-directional Texts in MIME
(Обработка двунаправленных текстов в MIME)
 —  —  —
RFC 2045 ноябрь 1996 MIME Part One: Format of Internet Message Bodies
(MIME Часть первая: Формат тела сообщений)
2184, 2231, 5335, 6532  —  — 1521, 1522, 1590
RFC 2046 ноябрь 1996 MIME Part Two: Media Types
(MIME Часть вторая: типы содержимого)
2646, 3798, 5147  —  — 1521, 1522, 1590
RFC 2047 ноябрь 1996 MIME Part Three: Message Header Extensions for Non-ASCII Text
(MIME Часть третья: Расширения заголовка для не-ASCII-текста)
2184, 2231  —  — 1521, 1522, 1590
RFC 2049 ноябрь 1996 MIME Part Five: Conformance Criteria and Examples
(MIME Часть пятая: Соответствие критериям и примеры)
 —  —  — 1521, 1522, 1590
RFC 4288 декабрь 2005 Media Type Specifications and Registration Procedures  —  —  — 2048
RFC 4289 декабрь 2005 MIME Part Four: Registration Procedures  —  —  — 2048
RFC 4855 февраль 2007 Media Type Registration of RTP Payload Formats  —  —  —

Примечания

[править | править код]
  1. "Common Syntax". p. 20. sec. 5.1.1. doi:10.17487/RFC2046. RFC 2046 https://datatracker.ietf.org/doc/html/rfc2046. ((citation)): |title= пропущен или пуст (справка)
  2. Письмо от Марка Криспина с описанием теста (архив)
  3. Тест (недоступная ссылка)
  4. Примечание в документации squirrelmail о тесте Марка Криспина. Дата обращения: 10 июля 2009. Архивировано 12 июня 2009 года.
{{bottomLinkPreText}} {{bottomLinkText}}
MIME
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?