Глава 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).Данный текст является ознакомительным фрагментом.