Глава 18 Почта

Глава 18 Почта

Эта глава посвящена электронной почте, тому, с чего и начинался Интернет. Функционирование электронной почты очень похоже на свой бумажный прототип. Давайте представим как работает обычная почта. Человек пишет письмо, подписывается, указывает на конверте адрес отправителя и получателя, запечатывает конверт и бросает его в почтовый ящик. Специальная служба, условно назовем ее курьерской, периодически объезжает почтовые ящики, собирает письма и отвозит их на почтамт. Там их сортируют и отправляют на почтамты в города назначения. На этих почтамтах письма сортируются по районам и адресатам, и почтальоны доставляют их по почтовым ящикам адресатов.

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

В качестве почтового клиента выступают десятки программ, среди которых – mail, Pine, Kmail, Balsa, stuphead, Mozilla и многие другие. Для транспортировки почты используется МТА, Mail Transport Agent – почтовый транспортный агент. Старейшим и наиболее распространенным транспортным агентом является программа send mail. Так же получили популярность программы Qmail, postfix, exim.

Основой почтовой службы является система адресов. В Интернете принята система адресов, которая базируется на доменном адресе машины, подключенной к сети. Например, для пользователя ivan машины с адресом ogpu.odessa.ua почтовый адрес будет выглядеть так: ivan@ogpu.odessa.ua.

Почтовый адрес состоит из двух частей: идентификатора пользователя, который записывается перед знаком "коммерческого at" – "@" – и доменного адреса компьютера, который записывается после знака "@". Существует еще один вариант задания почтового адреса – адрес UUCP, который записывается в виде: odessa.ua!ogpu!ivan. Правда протокол UUCP сейчас почти не используется.

Для работы электронной почты разработан специальный протокол Simple Mail Transfer Protocol (SMTP) – простой почтовый протокол, который является протоколом прикладного уровня и использует транспортный протокол TCP.

Протокол SMTP

Simple Mail Transfer Protocol был разработан для обмена почтовыми сообщениями в сети Интернет. SMTP не зависит от транспортной среды и может использоваться для доставки почты в сетях с протоколами, отличными от TCP/IP.

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

Как и множество других протоколов, команды и ответы протокола SMTP передаются в ASCII-кодах и представляют собой небольшой набор английских слов. Приведем небольшой пример отправки почтового сообщения по протоколу SMTP:

Отправитель: MAIL FROM: <ivan@ogpu.odessa.ua>

Получатель: 250 Ok

Отправитель: RCPT TO: <vano@mail.ru>

Получатель: 250 Ok

Отправитель: DATA

Получатель: 354 Start mail input; end with <CRLF>.<CRLF>

Текст почтового сообщения

Отправитель:

Получатель: 250

Протокол, помимо отправки почты, поддерживает переадресацию, прямую посылку сообщения на терминал, обработку ошибок и некоторые другие возможности.

Протокол POP3

Протокол обмена почтовой информацией POP3 (Post Office Protocol) предназначен для получения почты из почтовых ящиков пользователей на их рабочие места при помощи программ-клиентов. Таким образом, по протоколу SMTP пользователи отправляют корреспонденцию, а по протоколу POP3 – получают корреспонденцию из своих почтовых ящиков на почтовом сервере в локальные файлы. Этот протокол так же основан на установлении двусторонней связи, команды и ответы протокола передаются в ASCII-кодах и представляют собой небольшой набор английских слов.

Протокол IMAP

Еще одним протоколом разбора почты является протокол IMAP – почтовый протокол интерактивного доступа (Interactive Mail Access Protocol), который по своим возможностям похож на POP3, но разрабатывался как более надежная альтернатива последнему и обладает более широкими возможностями по управлению процессом обмена сообщениями с сервером.

Главным отличием от POP3 является возможность поиска нужного сообщения и разбор заголовков сообщения непосредственно на почтовом сервере.

Формат почтового сообщения (RFC-822)

Формат почтового сообщения определен в документе RFC-822. Почтовое сообщение состоит из трех частей: конверта, заголовка и тела сообщения. Конверт используется программами доставки почтового сообщения, а заголовок и тело сообщения предназначены для его получателя. Заголовок находится перед телом сообщения, отделен от него пустой строкой и состоит из определенных стандартом полей. Поля состоят из имени поля и содержания поля. Имя поля отделяется от содержания символом":". Для доставки сообщения можно воспользоваться только частью полей заголовка – такими как Date, From, се или то, например:

• Date: 26 Aug 76 1429 EDT

• From: 1@mail.ru

• To: Sm2@chat.ru

Поле Date определяет дату отправки сообщения, поле From – отправителя, а поля се и то – получателей. Однако, если следовать установленным правилам, необходимо определять все поля заголовка, описанные в стандарте:

• Date: 27 Aug 76 0932

• From: Motya <1@mail.ru>

• Subject: Re: Ответ на письмо

• Sender: K@Other-host

• Reply-To: Sam.Irving0R.org.ru

• To: Geo <J@chat.ru>

• Cc: Sm3@chat.ru

• Comment: Sam is away on bisiness

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

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

Поле subject определяет тему сообщения, Repiy-то – пользователя, которому отвечают, comment – комментарий, in-Repiy-то – показывает, что сообщение относится к типу "В ответ на Ваше сообщение, отвечающее на сообщение, отвечающее …", Message-iD – уникальный идентификатор письма, используемый почтовыми программами.

Формат сообщения постоянно дополняется и совершенствуется. В частности, в RFC-1327 введены дополнительные поля для совместимости с почтой Х.400.

Спецификация MIME (Multipurpose Internet Mail Extension)

Спецификация MIME (Multipurpose Internet Mail Extension), приведенная в стандарте RFC-1341, предназначена для описания тела почтового сообщения Интернета. Необходимость в этом стандарте возникла в силу того, что по стандарту RFC-822 в тело почтового сообщения не могут быть включены некоторые специальные символы и восьмибитные символы.

Стандарт RFC-822 подробно описывает в заголовке почтового сообщения текстовое тело письма и механизм его рассылки, a MIME сориентирован на описание в заголовке письма структуры тела почтового сообщения и возможности составления письма из информационных единиц различных типов.

В стандарте зарезервировано несколько способов представления разнородной информации. Для этого используются специальные поля заголовка почтового сообщения:

• поле версии MIME, которое используется для идентификации сообщения, подготовленного в новом стандарте;

• поле описания типа информации в теле сообщения, которое позволяет обеспечить правильную интерпретацию данных;

• поле типа кодировки информации в теле сообщения, указывающее на тип процедуры декодирования;

• два дополнительных поля, зарезервированных для более детального описания тела сообщения.

Стандарт MIME разработан как расширяемая спецификация, в которой подразумевается, что число типов данных будет расти по мере развития форм представления данных.

Рассмотрим некоторые из полей MIME.

MIME-Version

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

MIME-Version: 1.0

Поле версии указывается в общем заголовке почтового сообщения и относится ко всему сообщению целиком.

Content-Type

Поле типа используется для описания типа данных, которые содержатся в теле почтового сообщения. Это поле сообщает программе чтения почты, какие преобразования необходимы для того чтобы сообщение правильно проинтерпретировать. Эта же информация используется и программой рассылки при кодировании/декодировании почты. Стандарт MIME определяет семь типов данных, которые можно передавать в теле письма. Для важнейших из них приведем краткие описания.

• Текст (text). Этот тип указывает на то, что в теле сообщения содержится текст. Основным подтипом типа text является plain – плоский текст. Под этим подразумевается неразмеченный текст. Для определения размеченного текста используют подтип richtext, а для определения гипертекста – подтип html;

• Смешанный тип (multipart). Этот тип определяет смешанный документ, который может состоять из фрагментов данных разного типа. Данный тип имеет ряд подтипов;

• Сообщение (message). Данный тип предназначен для работы с обычными почтовыми сообщениями, которые напрямую не могут быть переданы по почте. Существует несколько подтипов:

– partial – подтип предназначен для передачи одного большого сообщения по частям для последующей автоматической сборки у получателя;

– External-Body – подтип позволяет ссылаться на внешние информационные источники;

– rfc822 – стандартный подтип типа message. Определяет сообщения стандарта RFC-822;

• Графический образ (image);

• Аудиоинформация (audio);

• Видеоинформация (video);

• Приложение (application).

Данный текст является ознакомительным фрагментом.