Формат почтового сообщения

Почтовые службы на разных машинах представляют сообщения в разных форматах, некоторые из них несовместимы. Тем не менее, большинство систем во всем мире понимают формат сообщения, называемый, по имени документа, в котором он описан, например формат почтового сообщения Internet определен в документе RFC-822 (Standard for ARPA Internet Text Message).

Первоначально этот стандарт был разработан для сети Internet, но сейчас принят во многих других сетях. Это довольно большой документ объемом в 47 страниц машинописного текста, поэтому рассмотрим формат сообщения на примерах.

Почтовое сообщение состоит из трех частей: конверта, заголовка и тела сообщения. Пользователь видит только заголовок и тело сообщения. Конверт используется только программами доставки. Заголовок всегда находится перед телом сообщения и отделен от него пустой строкойи содержит несколько строчек необходимой информации об этом сообщении: дату отправления, адрес, обратный адрес, тему сообщения, и другие.

RFC-822 регламентирует содержание заголовка сообщения. Заголовок состоит из полей. Поля состоят из имени поля и содержания поля. Имя поля отделено от содержания символом «:».

В документе RFC-822 открыто, сказано, что пользователям разрешается изобретать собственные заголовки для своих нужд при условии, что эти заголовки начинаются со строки X-. Гарантируется, что в будущем никакие стандартные заголовки не будут начинаться с этих символов, чтобы избежать конфликтов между официальными и частными заголовками. Иногда умники-студенты включают поля вроде X-Fruit-of-the-day: (сегодняшний плод) или X-Disease-of-the-week: (недуг недели), использование которых вполне законно, хотя их смысл и не всегда понятен.

Минимально необходимыми являются поля Date, From и To, например:

• Date: Wed May 10 18:31:21 2007

• From: postcards@postcards.ok.kz

• To:  Max@mail.ru

Поле Date определяет дату отправки сообщения, поле From - отправителя, а поле To – получателя (ей). Если письмо отослано по списку рассылки, то в поле To будет указан адрес почтового ящика, на который посылается текст письма для рассылки.

Письма по спискам рассылки идут довольно долго и могут запоздать на сутки и более. Бывает, что при ежедневной рассылке почты письмо за текущий день не приходит, а приходит оно после письма за следующий день. То есть, если письмо должно прийти 9-го числа, то может случиться, что оно придет 10-го, 11-го числа. Это обусловлено самой системой рассылки. Письмо может проходить через большое количество серверов и вследствие этого может опоздать. Также на это влияет и загруженность почтового сервера[12].

Чаще заголовок содержит дополнительные поля:

• Date: Tue May 9 12:21:18 2000

• From: ykovrizhnykh@online.kz

• Sender: admin@online.kz

• To:  hetene@mail.ru

• Message-ID: <4231.629.XYzi-admin@online.kz>

В данном случае, поле Sender указывает, что владелец ящика ykovrizhnykh@online.kz не является автором сообщения. Он только переслал сообщение, которое получил от admin@online.kz. Поле Message-ID содержит уникальный идентификатор сообщения и используется программами доставки почты.

Следующее сообщение демонстрирует все возможные поля заголовка:

• Date:            16 Mon Feb 2000 16:53:33

• From:           Ken Davis <Kdavis@This-Host.This.net>

• Subject:        Re: The Syntax in the RFC

• Sender:         KSecy@Other-host

• Reply-To:     Sam.Irving@Reg.Organization

• To:               hetene@mail.ru

• cc:                Important folks

• Comment:    New company launced.

• In-Reply-To: <some.string@DBM.Group>, George`s message

• Message-ID: <4331.629.XYzi-What@Other-Host

Поле Subject определяет ему сообщения, Reply-To - пользователя, которому отвечают, Comment - комментарий, In-Reply-To - показывает, что сообщение относится к типу «В ответ на Ваше сообщение, отвечающее на сообщение, отвечающее...».

Следует сказать, что формат сообщения постоянно дополняется и совершенствуется. В RFC-1327 введены дополнительные поля для совместимости с почтой протокола X.400. Кроме этого, следует обратить внимание на поля некоторых довольно часто встречающихся заголовков, которые не регламентированы в RFC-822.

Так, первое предложение заголовка, которое начинается со слова From, может содержать IMAP-путь сообщения, по которому можно определить, через какие машины сообщение «пробиралось». Поле Received: содержит транзитные адреса почтовых серверов с датой и временем прохождения сообщения. Вся эта информация полезна при разборе трудностей с доставкой почты.

Протоколы

Для работы в режиме обмена корреспонденции по ЭП необходимы специальные программы. Существуют два основных стандарта E-Mail:

    • X.400, созданный International Telecommunications Union;

    • SMTP, разработанный IETF (Internet Engineering Task Force).

    Стандарт Х.400 отличается строгостью, жёсткой стандартизацией, наличием коммерческих операторов с гарантированным уровнем сервиса, поддержкой большого числа национальных кодировок. Этот стандарт в виду названных особенностей пользуется большой популярностью среди государственных организаций всего мира, при работе, в частности, по правительственным телекоммуникационным линиям.

SMTP (англ. Simple Mail Transfer Protocol — простой протокол передачи почты) — это сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP.

ESMTP (англ. Extended SMTP) — масштабируемое расширение протокола SMTP. В настоящее время под «протоколом SMTP», как правило, подразумевают SMTP и его расширения.

SMTP используется для отправки почты от пользователей к серверам и между серверами для дальнейшей пересылки к получателю. Коды ответов SMTP и их значения приведены в приложении 4.

Данные передаются при помощи TCP, при этом обычно используется порт 25 или 587. При передаче сообщений между серверами используется только порт 25. Ограничения на размеры объектов SMTP представлены в приложении 5.

Sendmail был одним из первых (если не первым) агентом отправки сообщений, который начал работать с SMTP. В настоящее время этот протокол является стандартным для электронной почты, и его используют все клиенты и серверы.

Протокол был разработан для передачи только текста в кодировке ASCII, кроме того, первые спецификации требовали обнуления старшего бита каждого передаваемого байта. Это не даёт возможности отсылать текст на национальных языках (например, кириллице), а также отправлять двоичные файлы. Для снятия этого ограничения был разработан стандарт MIME – (Multipurpose Internet Mail Extensions), который описывает способ преобразования двоичных файлов в текстовые. В настоящее время большинство серверов поддерживают 8BITMIME. Существующие типы и подтипы MIME представлены в приложении 6.

Сервер SMTP — это конечный автомат с внутренним состоянием. Клиент передает на сервер строку команда<пробел>параметры<перевод строки>/ Сервер отвечает на каждую команду строкой, содержащей код ответа и текстовое сообщение, отделенное пробелом. Код ответа — число от 100 до 999, представленное в виде строки, трактующийся следующим образом:

• 2ХХ — команда успешно выполнена;

• 3XX — ожидаются дополнительные данные от клиента;

• 4ХХ — временная ошибка, клиент должен произвести следующую попытку через некоторое время;

• 5ХХ — неустранимая ошибка.

Текстовая часть ответа носит справочный характер и предназначен для человека, а не программы.

ESMTP — расширяемый протокол, в отличии от SMTP. При установлении соединения сервер объявляет о наборе поддерживаемых расширений (в качестве ответа на команду EHLO). Соответствующие расширения могут быть использованы клиентом при работе. Необходимо помнить, что если сессия начинается с команды HELO (используемой в «классическом» SMTP, RFC 821), то список расширений выводиться не будет.

POP3 (англ. Post Office Protocol Version 3 — протокол почтового отделения, версия 3) — это сетевой протокол, для получения сообщений электронной почты с сервера. Обычно используется в паре с протоколом SMTP[13]. Команды протокола POP3 (для минимальной конфигурации), представлены в приложении 7.

Широкое распространение получили две версии POP – POP2 и POP3. Протокол POP2 определен в стандарте RFC 937 и использует порт 109. POP3 определен в RFC 1725 и использует порт 110. Это несовместимые протоколы, в которых применяются разные команды, но они выполняют одинаковые функции. Предыдущие версии протокола (POP, POP2) устарели.

Стандарт протокола POP3 определён в RFC 1939. Расширения и методы авторизации определены в RFC 2195, RFC 2449, RFC 1734, RFC 2222, RFC 3206, RFC 2595.

IMAP (англ. Internet Message Access Protocol) — интернет-протокол прикладного уровня для доступа к электронной почте, определенный в стандарте RFC 1176 и созданный для того, чтобы заменить POP. В число его возможностей входит поиск текста на удаленной системе и синтаксический анализ сообщений, а этого как раз и нет в POP.

Альтернативным протоколом для сбора сообщений с почтового сервера является IMAP.

IMAP предоставляет пользователю богатые возможности для работы с почтовыми ящиками, находящимися на центральном сервере. Почтовая программа, использующая этот протокол, получает доступ к хранилищу корреспонденции на сервере так, как будто эта корреспонденция расположена на компьютере получателя. Электронными письмами можно манипулировать с компьютера пользователя (клиента) без необходимости постоянной пересылки с сервера и обратно файлов с полным содержанием писем.

IMAP был разработан для замены более простого протокола POP3 и имеет следующие преимущества: (по сравнению с POP).

• Письма хранятся на сервере, а не на клиенте;

• Поддержка нескольких почтовых ящиков (или папок);

• Возможно создание общих папок, к которым могут иметь доступ несколько пользователей;

• Информация о состоянии писем хранится на сервере и доступна всем клиентам;

• Поддержка поиска на сервере;

• Поддержка онлайн-работы. Клиент может поддерживать с сервером постоянное соединение, при этом сервер в реальном времени информирует клиента об изменениях в почтовых ящиках, в том числе о новых письмах;

• Предусмотрен механизм расширения возможностей протокола.

В отличие от POP3, IMAP может заниматься как доставкой исходящей почты от пользователя в направлении места назначения, так и доставлять входящую почту пользователя.

Текущая версия протокола имеет обозначение IMAP4rev1 (IMAP, версия 4, ревизия 1). Протокол поддерживает передачу пароля пользователя в зашифрованном виде. Кроме того, IMAP-трафик можно зашифровать с помощью SSL - (Secure Socket Layer). SSL позволяет защитить передачу данных по сети, кроме того с помощью SSL можно управлять личными сертификатами, указывать службы сертификации и другие параметры шифрования (широко используется в операционных системах Linux)[14].


 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: