Протоколы Internet


Многоцелевое расширение почты Интернет (MIME) - часть 35


Практика показала, что тип "multipart" с единственной составной частью полезен для посылки сообщений с нетекстовым типом среды. Он имеет возможность формирования преамбулы, как места, где можно поместить инструкции по декодированию. Кроме того, многие шлюзы SMTP перемещают или удаляют заголовки MIME, и хороший MIME-декодер таким путем может получить необходимую информацию даже в отсутствие заголовка Content-Type и корректно декодировать сообщение.

Единственным обязательным глобальным параметром для типа среды "multipart" является граничный параметр, который состоит из 1 - 70 кодов из символьного набора, который надежен по отношению преобразований, осуществляемых почтовыми шлюзами. Значение параметра не должно завершаться пробелом. Формально это записывается в BNF-представлении следующим образом.

boundary := 0*69 bcharsnospace

bchars := bcharsnospace / " "

bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" / "+" / "_" / "," / "-" / "." / "/" / ":" / "=" / "?"

Вообще тело объекта "multipart" может быть специфицировано как:

dash-boundary := "--" boundary

; boundary берется из значения граничного параметра поля Content-Type.

multipart-body := [preamble CRLF]

dash-boundary transport-padding CRLF

body-part *encapsulation

close-delimiter transport-padding

[CRLF epilogue]

transport-padding := *LWSP-char

Отправители не должны генерировать транспортные

; заполнители ненулевой длины, но получатели

; должны уметь обрабатывать заполнители, введенные

; при транспортировке.

encapsulation := delimiter transport-padding CRLF body-part

delimiter := CRLF dash-boundary

close-delimiter := delimiter "--"
epilogue := discard-text

; не должен появляться где-либо в теле секции. Заметим, что семантика части тела

; отличается от семантики сообщения, как это описано в тексте.




Начало  Назад  Вперед



Книжный магазин