Хотя электронная почта может рассматриваться как частный случай передачи файлов, она имеет ряд особенностей, не привычных для стандартных процедур пересылки файлов. Во-первых, отправитель и получатель почти всегда люди, а не машины. Это означает, что система электронной почты состоит из двух различных, но тесно взаимосвязанных частей: одна обеспечивает взаимодействие с человеком (например, составление, редактирование, прочтение сообщений), другая – передачу сообщений (например, рассылка по спискам, обеспечение передачи).
Другое различие между электронной почтой и средствами передачи файлов общего назначения состоит в том, что почтовые послания представляют собой четко структурированный документ. Во многих системах каждое послание сопровождается большим количеством дополнительных полей. Они включают в себя имя и адрес отправителя, имя и адрес получателя, дату и время отправки письма, перечень людей, которым направлена копия письма, уровень значимости, степень секретности и многое другое.
Системы электронной почты
Система электронной почты состоит из трех компонентов: пользовательского агента, который позволяет пользователям читать и составлять сообщения, транспортного агента, который пересылает сообщения с одной машины на другую, и доставочного агента, который помещает сообщения в почтовые ящики пользователей-получателей. Взаимодействие этих компонентов схематически изображено на Рис. 1.
Рис. 1. Работа агентов электронной почты
Пользовательские агенты. Самым первым пользовательским агентом была программа /bin/mail, разработанная AT&T. Сейчас есть несколько программ этого класса. Кроме того, существуют пользовательские агенты с графическим интерфейсом пользователя. Существует также стандарт, определяющий включение в почтовые сообщения объектов мультимедиа. Он называется MIME (Multipurpose Internet Mail Extensions) – многоцелевые расширения электронной почты для Internet. Этот стандарт поддерживают некоторые пользовательские агенты. Бесплатные пользовательские агенты для ОС UNIX – /bin/mail, pine, elm и др.
Транспортные агенты. Задача транспортного агента – принимать почту от пользовательского агента, интерпретировать адреса получателей и каким-то образом перенаправлять почту на соответствующие машины для последующей доставки. Кроме того, транспортный агент должен принимать входящую почту от других транспортных агентов. Многие транспортные агенты «говорят» на языке протокола SMTP (Simple Mail Transport Protocol – простой протокол транспортировки почты), который определен в RFC821.
Для ОС UNIX разработано несколько транспортных агентов (MMDF, zmailer, smail, upas и другие), но самый мощный, самый гибкий и самый распространенный – sendmail.
Программа sendmail – транспортный агент, программа-связка между пользовательскими и доставочными агентами. Для Internet она является и доставочным агентом. Программа sendmail выполняет следующие задачи:
Ø управление сообщениями после того, как они вышли из-под пальцев пользователя;
Ø разбор адресов получателей;
Ø выбор соответствующего доставочного или транспортного агента;
Ø преобразование адресов в форму, понятную доставочному агенту;
Ø необходимое переформатирование заголовков;
Ø передачу преобразованного сообщения доставочному агенту.
Программа sendmail, кроме того, генерирует сообщения об ошибках и возвращает сообщения, которые не могут быть доставлены, отправителю.
Доставочные агенты. Доставочный агент отвечает за прием почты от транспортного агента и ее доставку соответствующим получателям. Почта может доставляться конкретному лицу, в список рассылки, в файл и даже в программу.
Для обслуживания получателя каждого типа может понадобиться отдельный агент. Программа /bin/mail – это доставочный агент для локальных пользователей, а программы uux и spop, fetchmail – доставочные агенты для пользователей удаленных машин, которые для приема почты пользуются услугами UUCP или POP, IMAP. Программа /bin/sh – доставочный агент для почты, которая направляется в файл или программу.