Общая характеристика систем электронной почты
Электронная почта состоит из двух подсистем: пользовательских агентов, позволяющих пользователям читать и отправлять электронную почту, и агентов передачи сообщений, пересылающих сообщения от отправителя к получателю. Пользовательские агенты представляют собой локальные программы, представляющие различные методы взаимодействия пользователя с почтовой системой. Эти методы (или интерфейсы) могут быть командными, графическими или основанными на меню.
Обычно система электронной почты поддерживает следующие пять основных функций: составление, передача, уведомление, отображение приходящих сообщений на экране. На последнем этапе работы с электронным письмом решается дальнейшая судьба полученного сообщения. Получатель может удалить его, не читая, удалить после прочтения, сохранить и т.д.
Помимо этих пяти основных услуг большинство систем электронной почты представляют множество дополнительных функций. Когда пользователь переезжает с места на место может понадобиться переадресация его почты.
Большинство систем позволяют пользователям создавать почтовые ящики для хранения приходящей почты. Для работы с почтовыми ящиками нужны специальные команды, позволяющие создавать и удалять почтовые ящики, исследовать их содержимое.
Менеджерам часто бывает нужно послать сообщение всем своим подчиненным, заказчикам и поставщикам. Для облегчения выполнения этой задачи применяются списки рассылки, представляющие собой список адресов электронной почты. Предусматривается и ряд других полезных дополнительных функций.
В основе всех современных систем электронной почты лежит идея о разграничении конверта и содержимого письма. Конверт заключает в себе сообщение. Он содержит всю информацию, необходимую для доставки сообщения – адрес получателя, приоритет, уровень секретности и т.п. Агенты передачи сообщений используют конверт для маршрутизации.
Сообщение внутри конверта состоит из заголовка и письма. Заголовок содержит управляющую информацию для пользовательских агентов.
Как правило, пользовательский агент – это программа (иногда называемая почтовым редактором), управляемая множеством команд для составления и получения сообщений, а также для ответа на сообщения и управления почтовыми ящиками.
Чтобы послать письмо электронной почтой, пользователь должен составить текст сообщения, указать адрес получателя, а также, возможно, некоторые дополнительные параметры. Текст сообщения может быть набран в отдельном текстовом редакторе, с помощью программы подготовки почты (рис.7.1.).
Обычно при чтении электронной почты пользовательский агент просматривает содержимое почтового ящика получателя (программа просмотра почты). Он может объявить пользователю число новых сообщений в почтовом ящике, после чего перейти в режим ожидания команды пользователя.
В качестве примера работы пользовательского агента рассмотрим типичный сценарий. Запустив пользовательский агент, пользователь запрашивает краткую сводку о своей почте. На экране при этом появиться список писем. Каждая строка соответствует одному полученному письму и содержит несколько полей.
В простой системе электронной почты список отображаемых полей встроен в программу. В более простых системах пользователь может выбрать отображаемые поля, а настройки пользователя будут храниться в специальном файле, называющемся профилем пользователя. Например, первое отображаемое поле – номер сообщения. Второе поле, Flags (флаги) может содержать флаг, означающий, что сообщение не является новым, уже было прочитано и храниться в почтовом ящике; флаг А, означающий, что на данное сообщение уже был отправлен ответ. Возможно использование других флагов.
Третье поле содержит размер сообщения в байтах, а в четвертом поле указывается отправитель сообщения. Поле Subject (тема) содержит краткое изложение содержания сообщения.
После того как программа отобразила заголовки, пользователь может выполнить одну из нескольких команд: чтение, удаление письма и т.д.
Передаваемые сообщения состоят из примитивного конверта, нескольких полей заголовка, пустой строки и, наконец, тела сообщения. Каждое поле заголовка (логически) состоит из одной строки текста, содержащей имя поля, двоеточие и значение поля. Обычно пользовательский агент формирует сообщение и передает его агенту передачи сообщений, который с помощью одного из полей заголовка создает конверт нового вида, представляющего собой смесь сообщения и конверта.
Основные поля заголовка перечислены в таблице 7.1.. Поле To: содержит адрес получателя. Возможно наличие и нескольких получателей. В поле Cc: указываются адреса дополнительных получателей. Поле Вcс: аналогично предыдущему, с той лишь разницей, что в последнем случае строка этого поля невидна получателям. Это свойство позволяет рассылать одно письмо одновременно нескольким получателям так, что получатели не будут знать, что это письмо послано еще кому-либо кроме них.
Таблица 7.1.
Поле |
Значение |
To: |
Электронный адрес основного получателя |
Cc: |
Электронный адрес дополнительного получателя |
Bcc: |
Электронный адрес слепой копии |
From: |
Автор сообщения |
Sender: |
Электронный адрес отправителя |
Received: |
Строка, добавляемая каждым агентом передачи сообщений на протяжении маршрута |
Return-Path: |
Может быть использовано для идентификации обратного пути |
Следующие два поля From: и Sender: сообщают, соответственно, кто составил и отправил сообщение. Это могут быть разные люди. Поле From: является обязательным, тогда как поле Sender: может быть опущено. По адресам, указанным в этих полях, может быть отправлен ответ.
Строка, содержащая поле Received: добавляется каждым агентом передачи сообщений на пути следования сообщения. В этом поле помещается идентификатор агента, дата и время получения сообщения.
Поле Return-Path: добавляется последним агентом передачи сообщений. Предполагалось, что это поле будет сообщать, как добраться до отправителя.
Помимо полей, показанных в табл.7.1, сообщения могут также содержать широкий спектр полей заголовка, используемых пользовательским агентом или самым пользователем. Наиболее часто используемые поля заголовка приведены в табл.7.2.
Таблица 7.2
Поле |
Значение |
Date: |
Дата и время отправки сообщения |
Reply-to: |
Электронный адрес, на который следует посылать ответ |
Message-Id: |
Уникальный номер для последующей ссылки на это сообщение |
In-Reply-To: |
Идентификатор Message-Id сообщения, в ответ на которое посылается это сообщение |
References: |
Другие важные ссылки (идентификаторы Message-Id) |
Keywords: |
Ключевые слова, выбираемые пользователем |
Subject: |
Краткое изложение темы сообщения для отображения в одной строке |
После заголовков идет тело самого сообщения. Пользователь может разместить в нем все, что ему угодно.
После того как пользователь закончил формирование своего сообщения, оно помещается в определенную структуру – конверт сообщения. Конверт содержит информацию о структуре и составе передаваемых данных, дату формирования сообщения, имена и адреса отправителя, имена и адреса получателя. Тело сообщения содержит информацию, которую отправитель, передает получателю. Конверт и данные в сообщении тесно взаимосвязаны друг с другом, все почтовые системы для построения конверта используют информацию тела сообщения.
Электронная почта реализована с помощью архитектуры «Клиент - Сервер».
При помощи программы клиента (MS Outlook, The bat ...) сообщение подготавливается к отправке и посылается на почтовый сервер (программа отправки почтовых сообщений). Программа-клиент позволяет принимать и просматривать сообщения.
Сервер электронной почты (Sendmail, MS Exchange ...) обрабатывает сообщения и отправляет локальному адресату или удаленному серверу (рис.7.1). Для этого используется протокол POP3.
Основным протоколом работы с электронной почтой является SMTP (Simple Mail Transfer Protocol, простой протокол передачи почты).