Content-Type: text/plain; charset=us-ascii
Как быть, если требуется послать сообщение электронной почты в формате HTML, содержащее более богатый набор символов, чем US-ASCII, - скажем, набор символов для корейского языка? Следующий заголовок Content-Туре явно указывает, что сообщение содержит текстовый файл HTML, использующий набор символов корейского языка:
Content-Type: text/html; charset=euc-kr
Как вы, возможно, обратили внимание, в некоторые поля заголовков можно поместить несколько элементов информации. Дополнительная информация, вводимая в поле заголовка, называется параметром и отделяется точкой с запятой, как в приведенном выше примере.
Поле заголовка Content-Type применяется для указания типа и подтипа данных, находящихся в теле сообщения, а также описания кодировки таких
данных. Допускаются такие типы, как text, image, audio, video, multipart, application и многие другие. Например, тип носителя image/gif указывает, что тело сообщения содержит графическое изображение в формате GIF.
Для подтипа не устанавливается значения по умолчанию, поэтому его нельзя опускать в заголовке. Это означает, что нет смысла задавать просто text или video. Необходимо явное задание, как, скажем, text/html или video/mpeg.
Нераспознаваемые типы должны обрабатываться как application/octet- stream, что обозначает нахождение в теле сообщения двоичных данных. Термин поток октетов (octet stream) означает просто, что данные представляют собой поток восьмиразрядных чисел, или октетов. Иными словами, символы должны интерпретироваться не как таковые, а как двоичные числа. Принимающая почтовая программа должна воспринять это, предложив сохранить данные в файле.
Если сообщение содержит известный тип приложения, например applicati-
on/msword, почтовая программа должна вызвать соответствующее приложение для обработки этих данных.
Чтобы включить в сообщение электронной почты нетекстуальные данные, значение поля заголовка Content-Type должно быть задано как multipart. Это позволяет сочетать в одном теле сообщения один или несколько разных наборов данных. Тип носителя multipart также поддерживает несколько подтипов, из числа которых мы будем пользоваться подтипом mixed, чтобы вкладывать в сообщения общие смешанные наборы данных.
Сообщения с типом носителя multipart должны содержать тело, состоящее из одной или нескольких частей, каждая из которых начинается с собственного блока заголовка, за которым следуют пустая строка и блок тела. Поля заголовков в действительности не являются обязательными в частях тела. Если часть тела начинается с пустой строки, предполагается, что принимаются значения по умолчанию. Поэтому отсутствие заголовка Content-Type указывает на то, что соответствующее тело имеет Content-Type со значением text/plain; charset=us-ascii.