Веб-технологии Электронная почта

В нашем примере сообщение должно быть послано только одному получателю, поэтому используется только одна команда RCPT (сокращение от слова recipi- ent — получатель). Использование этой команды несколько раз позволяет посылать одно сообщение нескольким получателям. Каждое из них подтверждается или отвергается индивидуально

Доставка сообщений До сих пор мы предполагали, что все пользователи работают на машинах, способных посылать и получать электронную почту. Как мы уже знаем, электронная почта доставляется, когда отправитель устанавливает TCP-соединение с получателем и посылает по нему сообщения.

Авторизация. Транзакции. Обновление.

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

Теперь подведем небольшие итоги того, как происходит работа с электронной почтой клиентов провайдера

IMAP Пользователю, имеющему одну учетную запись у одного провайдера и всегда соединяющемуся с провайдером с одной и той же машины, вполне достаточно протокола РОРЗ

В целом стиль протокола IMAP подобен РОРЗ, пример работы которого показан в листинге 7.4. Различаются они количеством команд — в IMAP их десятки

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

Веб-почта Нельзя под конец не сказать нескольких слов о веб-почте. Некоторые веб-сайты, например Hotmail и Yahoo!, предоставляют электронную почту всем желающим. Работает эта система следующим образом. Имеются обычные агенты передачи сообщений, прослушивающие порт 25 в ожидании входящих SMTP-coединений.

Пересылка писем

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

SMTP — простой протокол электронной почты

В Интернете для доставки электронной почты машина-источник устанавливает TCP-соединение с портом 25 машины-приемника. Этот порт прослушивается почтовым демоном, и их общение происходит с помощью протокола SMTP (Simple

Mail Transfer Protocol — простой протокол электронной почты). Этот демон принимает входящие соединения и копирует сообщения из них в соответствующие почтовые ящики. Если письмо невозможно доставить, отправителю возвращается сообщение об ошибке, содержащее первую часть этого письма.

Протокол SMTP представляет собой простой ASCII-протокол. Установив ТСР-*соединение с портом 25, передающая машина, выступающая в роли клиента, ждет запроса принимающей машины, работающей в режиме сервера. Сервер начинает диалог с того, что посылает текстовую строку, содержащую его идентификатор и сообщающую о его готовности (или неготовности) к приему почты. Если сервер не готов, клиент разрывает соединение и повторяет попытку позднее.

Если сервер готов принимать почту, клиент объявляет, от кого поступила почта и кому она предназначается. Если получатель почты существует, сервер дает клиенту добро на пересылку сообщения. Затем клиент посылает сообщение, а сервер подтверждает его получение. Контрольные суммы не проверяются, так как транспортный протокол TCP обеспечивает надежный байтовый поток. Если у отправителя есть еще почта, она также отправляется. После передачи всей почты в обоих направлениях соединение разрывается. Пример диалога клиента и сервера при передаче сообщения из листинга 7.2 показан в листинге 7.3. Строки, посланные клиентом, помечены буквой С:, а посланные сервером — S:.

Листинг 7.3. Передача сообщения от elinor@abc.com для

С: HELO abc.com

S: 250 xyz.com приветствует abc.com

С: MAIL FROM: <elinor@abc.com>

S:  250 подтверждаю отправителя

С: RCPT ТО: <carolyn@xyz.com>

S:  250 подтверждаю получателя

С: DATA

S: 354 Отправляйте письмо: конец письма обозначается строкой, состоящей из символа С:. From: elinor@abc.com

С:  То: carolyn@xyz.com

С:  MIME-Version: 1.0

С: Message-Id: <0704760941.AA00747@abc.com>

С: Content-Type: multipart/alternative: boundary=qwertyuiopasdfghjklzxcvbnm

C: Subject: Земля обошла вокруг Солнца целое число раз С:

С: Это преамбула. Пользовательский агент игнорирует ее. Ку-ку. С:

С: --qwertyuiopasdfghjklzxcvbnm

С:  Content-Type: text/richtext С:

С: Happy birthday to you

С: Happy birthday to you

C: Happy birthday dear <bold> Carolyn </bold>

C:  Happy birthday to you

C:

C: --qwertyuiopasdfghjklzxcvbnm

C:  Content-Type: message/external-body:

Несколько комментариев к листингу /.3. Сначала клиент, естественно, посылает приветствие серверу. Таким образом, первая команда клиента выглядит как HELO, что представляет собой наиболее удачный из двух вариантов сокращения слова HELLO до четырех символов. Зачем все эти команды было нужно сокращать до четырех букв, сейчас уже никто не помнит.


На главную