message - Данные, инкапсулирующие почтовое сообщение. RFC 1521 определяет три подтипа. Основной подтип, rfc822, указывает на данные, представляющие полное сообщение RFC 822. Подтипы partial и External-body предназначены для обработки больших сообщений, partial позволяет при инкапсуляции разбивать большие сообщения на ряд MIME-сообщений. External-body указывает на внешний источник содержимого большого сообщения, что позволяет передавать в MIME-сообщении только указатель, а не само сообщение. Два дополнительных подтипа, news и http, позволяют передавать соответственно сетевые новости и HTTP-трафик, отформатированный по требованиям типизации содержимого MIME.
Заголовок Content-Transfer-Encoding определяет тип кодирования данных. Консервативные SMTP-системы передают только 7-битные ASCII-данные с длиной строки не более 1000 байт. Поскольку данные, исходящие от MIME- системы, могут проходить через шлюзы, передающие только 7-битные ASCII-символы, возникает необходимость подвергать данные кодированию. RFC 1521 определяет шесть типов кодирования. Некоторые из них позволяют указывать кодировку, присущую данным. Лишь два типа связаны с конкретными методами кодирования, определенными в RFC. Шесть типов кодирования следующие:
7bit - Данные в формате ASCII. Семибитные ASCII-данные не подвергаются кодированию.
8bit - Восьмибитные данные. Кодированию не подвергаются. Данные двоич- ные, но строки данных достаточно короткие для SMTP-транспорта, то есть не превышают в длину 1000 байт.
binary - Двоичные данные. Кодированию не подвергаются. Данные двоичные, а длина строки может превышать 1000 байт. Между данными типа binary и 8bit нет разницы, кроме ограничения на длину строки; оба типа данных представляют незакодированные потоки 8-битных байтов. MIME не изменяет незакодированные потоковые данные.
quoted-printable - Закодированные текстовые данные. Этот метод кодирования применяется для данных, состоящих преимущественно из отображаемых ASCII-символов. Текст в формате ASCII передается в незакодированном виде, а байты со значениями больше 127 или меньше 33 передаются закодированными в виде строк, состоящих из последовательностей символов. Каждая последовательность состоит из знака равенства и шестнадцатеричного значения байта. Например, ASCII-символ прогона страницы, имеющий шестнадцатеричное значение ОС, передается в виде =0С. Естественно, есть и другие тонкости - так, знак равенства приходится передавать в виде =3D, а символ новой строки в конце строки не кодируется. Тем не менее описанный метод дает представление о передаче данных в кодировке quoted-printable.