I*EARN-99
50
Формат почтового сообщения
Механизмы кодирования сообщений
Следует отличать понятие кодировки от употреблявшегося в предыдущем пункте
понятия языковой кодировки (charset) - под языковой кодировкой обычно понимается
взаимооднозначное отображение множества печатных символов на множество значений,
представимых одним байтом (0-256). Просто кодировкой будем называть отображение
множество значений, представимых одним байтом (0-255) на его подмножество (в данном
случае 0-127).
Двоичный файл (не текстовый, например, графический файл, исполняемая программа)
может содержать в себе какие угодно коды, в том числе, соответствующие по значению
непечатным (специальным, управляющим) символам, которые не должны в письме. В таком
виде данные не могут быть пересланы по 7-битным почтовым протоколам, и всегда
должны кодироваться в 7-битное представление (то есть, с использованием только кодов до
128). Размер файлов при этом увеличивается в среднем приблизительно на 30%, хотя
существуют различные алгоритмы.
В рамках старого почтового стандарта (почта по протоколу UUCP) самым
распространенным 7-битным форматом является UUcode (обычно термины UUencode и
UUdecode применяются по отношению к операциям кодирования и декодирования
соответственно). Существует еще BinHex, используемый на компьютерах Macintosh, и другие
7-битные форматы.
Программа Outlook Express по умолчанию использует формат MIME (означает
"Multipurpose Internet Mail Extensions" Многоцелевые расширения почтового стандарта
Internet). Этот стандарт описывает как
пересылать по электронной почте
исполняемые, графические,
мультимедийные, смешанные данные.
Типичные применения MIME - пересылка
графических изображений, аудио,
документов Word, программ и даже просто
текстовых файлов, то есть, когда важно, чтобы
входе пересылки не производилось никаких
преобразований над данными. MIME также
позволяет размечать письмо на части различных типов так, чтобы получатель (почтовая
программа) мог определить, что делать с каждой из частей письма.
MIME-сообщение может либо вообще не перекодироваться в 7-битный формат, либо
перекодироваться с использованием следующих алгоритмов:
Механизм конвертации «Quoted-Printable». Этот механизм предназначен для
представления данных, в основном состоящих из байтов, соответствующих символам,
имеющим изображение в символьном наборе ASCII (то есть, печатным символам). В
результате данного кодирования все байты будут иметь такие значения,
гарантированные от дальнейшей модификации почтовыми серверами. Если конвертируемые
данные в основном представляют собой ASCII-текст, то конечная их форма остается
узнаваемой и читаемой для человека. Тело, полностью состоящее из ASCII-символов,
также может быть конвертировано в Quoted-Printable, что гарантирует его содержимому
целостность при прохождении через всякие шлюзы, в которых происходит языковая
перекодировка символов или преобразование концов строк и т.д.
Механизм конвертации Base64. Этот алгоритм разработан для представления
произвольных последовательностей
байтов в 7-битную форму. Закодированные
данные в Base64 примерно на 33%
больше, чем исходные.
Так, сообщение в формате HTML,
содержащее графику и звук может быть
передано только с использованием MIME-
кодирования, и неприменимо при отправке
почты, адресату, работающему на
компьютере с почтой по протоколу UUCP.
Outlook Express позволяет
настроить формат отправляемых сообщений. На вкладке Отправка сообщений диалогового