Значение поля Content-Transfer-Encoding состоит из маркера, указывающего тип кодировки, обычно 7bit, 8bit, binary, quoted-printable или base64. Тип кодировки 7bit требует, чтобы тело сообщения имело 7-разрядное представление, подготовленное для передачи по почте. Это значение по умолчанию, поэтому в отсутствие этого поля предполагается, что задано Content-Transfer- Encoding: 7bit.
Тип кодировки 8bit обычно требуется для передачи электронной почты с использованием 8-разрядных многобайтовых символов. Например, большинство азиатских языков (и ряд европейских) хранят символы в 8-разрядном формате:
Content-Type: text/plain; charset=euc-kr Content-Transfer-Encoding: 8bit
Приведенные выше заголовки передают сообщение электронной почты с использованием набора символов корейского языка в 8-разрядном формате данных.
Типы кодировки quoted-printable и base64 преобразуют данные в 7-разрядный формат, благодаря чему их можно безопасно передавать через транспортные протоколы, имеющие ограничения. Однако первый из них ненадежно работает с некоторыми почтовыми транспортными протоколами, поэтому base64 остается единственным кандидатом в качестве наиболее надежного типа кодировки для передачи нетекстуальных данных. Следует учесть, что данные в обеих кодировках, quoted-printable и base64, должны быть представлены строками, имеющими длину не более 76 символов.
Content-Description
Необязательное поле заголовка Content-Description содержит описательную информацию для данной части тела. Например, описание звукового файла, включенного в сообщение, можно поместить в такое поле заголовка:
Content-Description: This is an МРЗ file. You need an MP3 player to play this audio file.
Content- Disposition
Необязательный заголовок Content-Disposition сообщает принимающему почтовому клиенту, как обращаться с соответствующей частью тела. В нем может быть два значения: INLINE или ATTACHMENT. Если задано значение INLINE, почтовый клиент должен раскодировать вложенные данные и вывести их встроенными в сообщение, тогда как ATTACHMENT влечет сохранение данных на локальном носителе после получения подтверждения пользователя. Это поле заголовка может также содержать дополнительный параметр, указывающий имя, под которым следует сохранить данные:
Content-Disposition: attachment; filename = yonsuk.gif
Теперь, когда у нас достаточно знаний о сообщениях MIME,
займемся практическим созданием класса мэйлера MIME.