Тип multipart
Тип multipart(составной) указывает, что тело состоит из нескольких независимых частей. Поле заголовка Content-Typeвключает разделитель, определяющий границу между частями тела сообщения. Разделитель не должен встречаться в самих фрагментах тела сообщения. Каждый разделитель начинается с новой строки и состоит из двух дефисов, за которыми следует значение разделителя. У последнего разделителя, указывающего на конец последней части, два дефиса ставятся также в конце. Каждая часть сообщения может иметь собственный MIME-заголовок.
Вот простой пример составного сообщения, содержащего две части, состоящие из простого текста:
From: Nathaniel Borenstein <nsb@bellcore>
To: Ned Freed <ned@innosoft>
Subject: ПростоесообщениеMIME-Version: 1.0
Content-type: multipart/mixed; boundary="простой разделитель"
Это преамбула. Она может быть проигнорирована, хотя здесь составитель письма может поместить пояснение для читателей, система которых не поддерживает расширений MIME. --простой разделитель
Это простой ASCII-текст. Он НЕ заканчивается пустой строкой.
--простойразделитель
Content-type: text/plain; charset=us-ascr
Это простой ASCII-текст. Он заканчивается пустой строкой.
--простой разделитель
Это эпилог. Он также может быть проигнорирован.
Существует четыре подтипа типа multipart, подчиняющихся одному общему синтаксису. Подтип multipart/mixedиспользуется, когда тело состоит из нескольких независимых частей, которые необходимо объединить в определенном порядке. Для подтипа multipart/parallelпорядок расположения частей не имеет значения. Несколько частей могут отображаться одновременно, если система получателя поддерживает такой режим. Например, изображение или текст могут сопровождаться голосовыми комментариями.
Для подтипа multipart/alternativeразличные фрагменты тела письма представляют собой разные варианты одной и той же информации. Например:
From: Nathaniel Borenstein <nsb@bellcore>
To: Ned Freed <ned@innosoft>
Subject: Форматированное текстовое письмо MIME-Version: 1.0
Content-type: multipart/alternative; boundary="разделитель42"
--разделитель42
Content-type: text/plain; charset=us-ascr
...здесь помещается версия сообщения в виде простого ASCII-текста...
--разделитель42 Content-type: text/richtext
...здесь помещается версия сообщения в формате richtextRFC1341 --разделитель42
Дата: 24 марта 2016