Заголовок Content-Type почтовых сообщений, состоящих из нескольких частей, должен содержать один обязательный параметр boundary (разделитель):
Content-Type: multipart/mixed; boundary="01fedcb87ld3f012e43680250ba5ca3f"
Частям, составляющим тело, должны предшествовать строки с разделителем границ, каждая из которых состоит из двух символов дефиса (-- ) и значения параметра boundary из поля заголовка Content-Type (в данном примере 01fedcb871d3f012e43680250ba5ca3f), завершаясь парой CR/LF:
—01fedcb871d3f012e43680250ba5ca3f
Строка с разделителем границ boundary завершается парой символов CR/LF и полями заголовков для очередной части либо двумя символами CR/LF - и тогда полей заголовков для очередной части нет. Разделители границ должны быть не длиннее 70 символов, не считая двух ведущих дефисов.
Строка разделителя границ, следующая за последней частью тела, выделяется тем, что за параметром boundary следуют еще два дефиса, указывающие, что других частей в теле больше нет:
--01fedcb871d3f012e43680250ba5ca3f—
Поскольку разделитель границ предназначен специально для выделения отдельных частей тела, он не должен присутствовать внутри составляющих тело частей. Поэтому важно, чтобы в почтовой программе значение параметра boundary было уникальным и не встречалось в теле сообщения. Например, значение --01fedcb871d3f012e43680250ba5ca3f приемлемо, если символы не встретятся в открытом тексте тела:
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="01fedcb871d3f012e43680250ba5ca3f"
Параметр boundary обычно состоит из 32 :, цифр (т. е. сим
волов 0-9 и a-f). Это шестнадцатеричное представление 128-разрядного значения, и риск появления его в теле сообщения минимален. Выберите случайное 128-разрядное число, и вероятностью встретить его в сообщении
электронной почты можно практически пренебречь.
Content-TransferЈncod i ng
Многие типы электронных сообщений, передаваемых по электронной почте, по природе своей представлены 8-разрядными символами или двоичными данными. Однако такие данные нельзя передавать через некоторые транспортные протоколы, например SMTP, которые ограничивают сообщение электронной почты 7-разрядными данными в кодировке US-ASCII и строками не длиннее 1024 символов.
MIME предоставляет механизм, позволяющий преодолеть это ограничение с помощью поля заголовка Content-Transfer-Encoding. В этом поле указывается кодирующее преобразование, примененное к телу сообщения и преобразующее исходный формат в совместимый с протоколом. При получении сообщения производится обратное преобразование.