Многоцелевое расширение почты Интернет

         

Дополнительные поля заголовка MIME


Будущие документы могут содержать дополнительные поля заголовков MIME для различных целей. Любое новое поле заголовка, которое описывает содержимое сообщения должно начинаться со строки "Content-", для того чтобы такие поля можно было с гарантией отличить от обычных полей заголовков сообщения, следующих стандарту RFC-822.

MIME-extension-field := <Любое поле заголовка RFC-822, которое начинается со строки "Content-">

Используя поля заголовка MIME-Version, Content-Type и Content-Transfer-Encoding, можно подключить стандартным образом произвольные типы данных и добиться совместимости с требованиями документа RFC-822. Никакие ограничения введенные документами RFC-821 или RFC-822 не нарушаются, были приняты меры, чтобы исключить проблемы, связанные с дополнительными ограничениями из-за свойств некоторых механизмов пересылки почты по Интернет (см. RFC-2049).

Приложение A -- обзор грамматики

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

attribute := token Распознавание атрибутов не зависит от регистра, в котором написаны их имена.
composite-type:="message" / "multipart" / extension-token 
Content:="Content-Type" ":" type "/" subtype *(";" parameter) Распознавание типов среды и субтипов не зависит от регистра, в котором написаны их имена.
description:=  "Content-Description" ":" *text 
discrete-type:="text" / "image" / "audio" / "video" / "application" / extension-token 
encoding:="Content-Transfer-Encoding" ":" mechanism 
entity-headers:=

[ content CRLF ] [ encoding CRLF ] [ id CRLF ] [ description CRLF ] *( MIME-extension-field CRLF )  extension-token:=ietf-token / x-token  hex-octet := "=" 2(DIGIT / "A" / "B" / "C" / "D" / "E" / "F") Октет должен использоваться для символов > 127, =, пробелов или TAB в конце строк, и рекомендуется для любого символа вне списка "mail-safe" RFC 2049. iana-token := <Общедоступная лексема. Лексемы этого формата должны регистрироваться IANA, как это определено в RFC 2048.>  ietf-token := <Лексема расширения, определенная согласно RFC и зарегистрированная IANA.>  Id := "Content-ID" ":" msg-id  mechanism := "7bit" / "8bit" / "binary" / "quoted-printable" / "base64" / ietf-token / x-token  MIME-extension-field := <Любое поле заголовка RFC 822, которое начинается со строки "Content-">  MIME-message-headers := entity-headers fields version CRLF Порядок полей заголовка, заданный в BNF-определении не играет никакой роли. MIME-part-headers:=Заголовки объекта [поля] Любое поле, начинающееся с "content-", не имеет строго заданного значения и может игнорироваться.parameter:=атрибут "=" значение Ptext:=hex-octet / safe-char  qp-line := *(qp-segment transport-padding CRLF) транспортный заполнитель qp-части  qp-part:=qp-секцияМаксимальная длина 76 символовqp-section:=[*(ptext / SPACE / TAB) ptext] qp-segment:=qp-секция *(SPACE / TAB) "=" Максимальная длина 76 символовQuoted-printable:=qp-line *(CRLF qp-line)  safe-char:=<любой октет с десятичным кодом от 33 до 60, включительно, и с 62 до 126>Символы вне списка "mail-safe" в RFC 2049 не рекомендуются.subtype:=Лексема расширения / лексема iana  Token:=1*<любой US-ASCII-символ за исключением SPACE, CTLs, или tspecials>  transport-padding := *LWSP-charПрограмма-отправитель не должна формировать транспортное заполнение ненулевой длины, но получатели должны быть способны обрабатывать такие транспортные заполнители. tspecials := "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / <"> "/" / "[" / "]" / "?" / "="При использовании в значениях параметров они должны иметь формат закавыченных строк. Type := discretetype / compositetype Value := лексема / закавыченная строка version := "MIME-Version" ":" 1*DIGIT "." 1*DIGIT x-token := <Два символа "X-" или "x-", за которыми следует без пробела любая лексема>
II. Типы среды

1. Введение

Поле Content- Type используется для спецификации природы информации в теле MIME-объекта путем присвоения идентификаторов типа и субтипа среды и предоставления дополнительной информации, которая может быть необходима для данной разновидности среды. За именами типа и субтипа среды в поле следует набор параметров, заданных в нотации атрибут/значение. Порядок следования параметров не существенен.

Тип среды верхнего уровня используется для декларации общего типа данных, в то время как субтип определяет специфический формат данного типа информации. Таким образом, тип среды "image/xyz" говорит агенту пользователя, что данные характеризуют изображение и имеют формат "xyz". Такая информация может использоваться, для того чтобы решить, отображать ли пользователю исходные данные нераспознанного субтипа. Такие действия могут быть разумными для нераспознанного фрагмента субтипа "text", но не для субтипов "image" или "audio". По этой причине, зарегистрированные субтипы "text", "image", "audio" и "video" не должны содержать встроенных фрагментов другого типа. Такие составные форматы должны использовать типы "multipart" или "application".

Параметры являются модификаторами субтипа среды, и как таковые не оказывают никакого влияния на содержимое. Набор параметров зависит от типа и субтипа среды. Большинство параметров связано с одним специфическим субтипом. Однако определенный тип среды высшего уровня может определить параметры, которые приложимы к любому субтипу данного типа. Параметры могут быть обязательными или опционными. MIME игнорирует любые параметры, имена которых нераспознаны.

Поле заголовка Content-Type и механизм типа среды спроектированы так, чтобы сохранить масштабируемость, обеспечивая постепенный рост со временем числа пар тип/субтип и сопряженных с ними параметров. Транспортное кодирование MIME, а также типы доступа "message/external-body" со временем могут обрести новые значения. Для того чтобы гарантировать то, что такие значения разработаны и специфицированы корректно, в MIME предусмотрен процесс регистрации, который использует IANA (Internet Assigned Numbers Authority) в качестве главного органа контролирующего данный процесс (см. RFC 2048). В данном разделе описаны семь стандартизованных типов среды верхнего уровня.


Содержание раздела