Стандартизация электронной почты

Для некоторых может оказаться откровением то, что все Internet-сообщения пересылаются только в текстовом формате (по крайней мере, до сегодня)! "А как же изображения и выполнимые файлы, которые получает адресат? Как же различные наборы начертаний символов в одном сообщении?" -- спросите вы.
В IETF (Internet Engineering Task Force - специальная организация, занимающаяся стандартизацией форматов и протоколов Internet) был разработан специальный стандарт, получившей название MIME (Multipurpose Internet Mail Extensions -- Многоцелевые расширения почтового стандарта Internet). Этот стандарт описывает, как пересылать по электронной почте исполняемые, графические, мультимедийные, смешанные данные. Типичные применения MIME -- пересылка графических изображений, аудио, документов, например, подготовленных в WinWord, программ, сообщений написанных на HTML и просто текстовых файлов. MIME также позволяет размечать письмо на части различных типов так, чтобы получатель (почтовая программа или П-К) мог определить, что делать с каждой из частей сообщения. MIME придерживается концепции, что сообщение состоит из нескольких частей.
Рассмотрим основные поля, применяемые в стандарте:

Mime-Version: 1.0
Content-type: image/tiff; name="image.tif"
Content-transfer-encoding: x-uuencode
Content-Description: Tagged Image File Format
...

Mime-Version (Версия MIME)

Поле указывает на то, что сообщение подготовлено в формате MIME версии 1.0.

Content-type (Тип Содержимого)

Поле, которое используется для указания типов данных внутри сообщения. В данном случае, это изображение в формате TIFF, имя исходного файла «image.tif». Стандарт описывает несколько типов, среди которых такие, как «text» (текстовый формат), «multipart» (сообщение состоит из нескольких частей), «application» (обмен данными между приложениями, например, электронные таблицы), «image» (изображение), «audio» («звуковой» формат), «video» (видеофрагмент) и другие.

Content-transfer-encoding (Кодирование При Пересылке)

Поле, которое может быть использовано для указания формата представления пересылаемых данных. Многие данные, пересылаемые по ЭП, требуют для своего представления 8-ми битный набор данных, стандарт же описывающий ЭП для Internet разрешает использование только 7-ми бит, да и к тому же ограниченную длину строки в 1000 символов. Поэтому все данные, не удовлетворяющие этому требованию, должны быть приведены в 7-ми битный формат. Для этого существует несколько алгоритмов преобразований: x-uuencode, base64. quoted-printable, 7bit, 8bit, binary (значения «8bit», «7bit» и «binary» означают, что никакой трансформации содержимого не производится).

Content-Description (Описание Содержимого)

Одно из дополнительных полей, просто описывающее данные в сообщении.
Введение стандарта MIME позволило поместить в обычное текстовое сообщение данные любого типа и абстрагироваться от компьютерной платформы, т.е. П-К (программы чтения почты) различных операционных систем и аппаратных платформ, поддерживая этот стандарт, могут без проблем читать одно и то же сообщение. Соответственно, это гарантия того, что, например, одно и то же изображение, присоединенное к письму, будет одинаково «понято» и отображено и на Макинтоше в среде MacOS и на персональном компьютере в среде Windows.
Выше упоминалось, что П-К иП-Д должны уметь принимать/передавать сообщения друг от друга, т.е. они должны уметь понять друг друга («говорить на одном языке») или, другими словами, поддерживать один и тот же протокол (набор правил). В Internet, для передачи сообщений от Программы-Клиента к Программе-Доставщику, и от одной Программы-Пересыльщика к другой Программе-Пересыльщику, используется «Простой Протокол Передачи ЭП» (SMTP -- Simple Mail Transfer Protocol), и, наоборот, для передачи сообщений от П-Д к П-К (прием сообщений) используется «Протокол Почтового Отделения» (POP — Post Office Protocol).
Протокол SMTP должны поддерживать сервера исходящей почты, протокол POP -- «входящей» почты («входящей» и «исходящей» -- относительно пользователя).
Исходя из всего вышесказанного, можно уже сделать некоторые выводы, на основании которых и формируется понятие принципов работы любой почтовой программы:

  • П-К -- программы-клиенты, используются для подготовки сообщения, указания адресов получателей, темы;
  • П-Д -- можно представить себе как программу, запущенную на сервере провайдера, предоставляющего услуги ЭП, принимает и/или отправляет почту к/от П-К;
  • для нормальной работы программы чтения ЭП ей необходимо указать адреса серверов входящей и исходящей почты;
  • сообщение состоит из нескольких частей: конверт, заголовок, тело сообщения;
  • сообщение состоит из нескольких частей: конверт, заголовок, тело сообщения;
  • заголовок, частично формируется пользователем (поля «Кому», «От кого»);
  • один из способов передачи не текстовых данных в письме -- использовать MIME-совместимую программу;
  • данные в сообщении, подготовленные в соответствии со стандартом, MIME могут кодироваться различными способами .(base64);