MIME
Материал из Википедии — свободной энциклопедии
Multipurpose Internet Mail Extensions (MIME, англ. Multipurpose Internet Mail Extension — многоцелевые расширения почты интернета, произносится как «майм») — стандарт, описывающий передачу различных типов данных по электронной почте, а также, шире, спецификация для кодирования информации и форматирования сообщений таким образом, чтобы их можно было пересылать по Интернету.
Содержание |
[править] Введение
MIME определяет механизмы для передачи разного рода информации внутри текстовых данных (в частности, с помощью электронной почты), а именно: текст на языках, для которых используются кодировки, отличные от ASCII, и нетекстовый контент, такой как картинки, музыка, фильмы и программы. MIME является также фундаментальным компонентом коммуникационных протоколов, таких как HTTP, которым нужно, чтобы данные передавались в контексте сообщений подобных e-mail, даже если данные реально не являются e-mail.
Отображение в и из MIME-формата в основном делается автоматически e-mail-клиентом или почтовыми серверами при посылке и получении электронных сообщений по Интернету (SMTP/MIME).
Основной формат электронных сообщений определен в RFC 2822, который является обновленной версией RFC 822. Эти стандарты определяют похожие форматы для текстовых e-mail-заголовков и содержимого и правил, относящихся к общеиспользуемым полям, таким как «To:», «Subject:», «From:» и «Date:». MIME определяет набор e-mail-заголовков для определения дополнительных атрибутов сообщения, включая тип контента, и определяет множество кодировок, которые могут быть использованы для представления 8-битных бинарных данных, использующих символы из 7-битного ASCII множества. MIME также определяет правила для кодирования не-ASCII символов в заголовках e-mail-сообщения, таких как «Subject:».
MIME расширяем для новых типов — его определение включает метод для регистрации новых типов контента и других атрибутов.
[править] Организация данных
Формат MIME поддерживает передачу нескольких сущностей в пределах одного сообщения. Причём сущности могут передаваться не только в виде одноуровневой последовательности, но в виде иерархии с вложением элементов друг в друга. Для обозначения множественного содержимого используются медиатипы multipart/*. Работа с такими типами осуществляется по общим правилам описанным в RFC 2046 (если иное не определено конкретным медиа типом). Если получателю не известно как работать с типом, то он обрабатывает его так же как multipart/mixed.
Для передачи множественного сообщения в заголовок Content-Type добавляется параметр boundary (граница), который обозначает последовательность символов, разделяющих части сообщения. Граница может состоять из цифр, букв и символов «'()+_,-./:=?». При использовании специальных символов (не цифр и букв) значение параметра boundary следует заключать в двойные кавычки «"». Максимальная длина границы — 70 символов.
Начало каждой части сообщения обозначается строкой «--граница». Конец последнего сообщения обозначается строкой «--граница--». Самые первые символы переноса строки CRLF (коды 13 и 10), которыми начинаются и заканчиваются пограничные строки не входят в содержимое самой части. Если за ними следуют ещё переносы строк, то они уже принадлежат включаемой части.
Перед первой частью и после последней может быть дополнительный текст. Он называется преамбулой и эпилогом соответственно. В протоколе HTTP эти элементы игнорируются. В сообщении электронной почты преамбула может содержать текст, выводимый клиентами электронной почты, не понимающими формата MIME.
В самом начале включаемой части располагаются заголовки, описывающие её содержимое (Content-Type, Content-Length и т. п.). Перед непосредственно телом части обязательно должна быть пустая строка даже если заголовки отсутствуют. Если не определён Content-Type, то по умолчанию — text/plain.
[править] Тест Марка Криспина
Марк Криспин (Mark Crispin), основатель IMAP протокола, написал [1] Тест для проверки корректности обработки MIME. Тест представляет из себя письмо в формате mbox. Как пишут [2] разработчики squirrelmail, "это сообщение is crazy! В нём 30 вложенных друг в друга частей. Очень хороший тест".
[править] См. также
- S/MIME (Secure/Multipurpose Internet Mail Extension) — стандарт для шифрования и цифровой подписи на основе MIME
- MHTML
- UUE
- Xxencode
- Base64
- BinHex
- YEnc
- FIDO
[править] Примечания
- ↑ http://mailman2.u.washington.edu/pipermail/imap-protocol/2007-November/000729.html Письмо от Марка Криспина с описанием теста
- ↑ http://squirrelmail.org/docs/devel/devel-6.html#ss6.4 Примечание в документации squirrelmail о тесте Марка Криспина
[править] Ссылки
- Почтовый стандарт «MIME» (RFC1521)(рус.) неполный русский перевод спецификации RFC 1521 «MIME — Multipurpose Internet Mail Extensions. Part one. Mechanismes for Specifying and Describing the Format of Internet Message Bodies», а также конспект некоторых других документов, касающихся применения стандарта MIME.
- RFC 1521. MIME — Multipurpose Internet Mail Extensions(рус.)
- Таблица MIME-типов(рус.)
- Официальный список MIME-типов IANA(англ.)
| Это незавершённая статья о компьютерах. Вы можете помочь проекту, исправив и дополнив её. |

