В качестве ядра для SendMail использовалась тщательно отлаженная программа DeliverMail (написанная в 1979 году под BSD Unix 4.0), не обладающая способностью поддержки разнородных сетей. Именно этот недостаток был устранен в SendMail. Расплатой за универсальность стала значительно возросшая сложность программы, а вместе с ней и количество допущенных ошибок. В шутку утверждается - дыр в SendMail больше, чем во всех остальных вместе взятых приложениях для UNIX.

Программа SendMail распространяется свободно вместе с исходными текстами, поэтому совершенствуется и латается многочисленными разработчиками, многие из которых адаптируют ее для собственных нужд. Найти ее можно на ftp://ftp.cs.berkeley.edu

Рисунок SendMail.bmp Так выглядит логотип программы SendMail

Функционально SendMail состоят из трех обособленных компонентов: User Agent (Агента Пользователя), Transfer Agent (Агента Пересылки) и Delivery Agent (Агента Доставки).

· Агент пользователя позволяет формировать сообщения для отправки и декодировать полученные послания, хранящиеся в почтовом ящике (mailbox).

· Агент Пересылки занимается приемом и пересылка корреспонденции с одной машины на другую, с учетом используемого получателем протокола связи.

· Агент Доставки управляет почтовым ящиком пользователя, помещая в него входящие сообщения.

Таким образом, SendMail представляет собой законченную почтовую систему, не требующую услуг никаких других приложений.

Рисунок 028.fig Устройство и взаимодействие двух почтальонов SendMail

Устройство почтового ящика варьируется в широких пределах, но в простейшем случае - это обычный файл, в который последовательно одно за другим записываются все входящие сообщения. В других реализациях каждое сообщение помещается в отдельный файл, но, так или иначе, почтовый ящик образно можно представить в виде именованной записи, хранящейся на сервере. Протокол POP3 (IMAP4) не единственный механизм доступа к собственной корреспонденции - с тем же успехом можно воспользоваться службами telnet, FTP, WWW и т.д.

Главное достоинство POP3 (IMAP4) - предоставление удобного унифицированного интерфейса для работы с почтовыми ящиками. В пересылке корреспонденции они никак не участвуют. Их роль значительно скромнее - доставить почту с сервера на локальный компьютер пользователя. Теоретически можно обойтись и без них - Агент Пользователя, встроенный в SendMail, замечательно справляется с задачей отображения сообщений [199].

При отправке письма используется следующий алгоритм: сначала SendMail пытается установить местоположение получателя. Если тот расположен на локальной машине [200], запускается программа “/bin/mail”, помещая сообщение в почтовый ящик пользователя. Ситуация усложняется, когда получатель находится на другом узле. Тогда SendMail по форме адреса пытается распознать используемый протокол. Так, например, встретив адрес вида host1!host2!пользователь Transfer Agent использует UUCP [201] протокол и SMTP протокол для адреса наподобие user@host. В крайнем случае, может быть предпринята попытка доставки письма прямым соединением по модему или другим сетям.

Агент Пересылки ведает и приемом входящих сообщений. При описании SMTP протокола, затрагивалась модель “Sender-Receiver”. В один момент времени SMTP-сервер выступает передатчиком сообщения, а в другой - приемником. Обе функции реализует Агент Пересылки, - являясь ядром почтовой системы. Другими словами, Transfer Agent представляет собой одну из возможных реализаций протокола SMTP, все остальные компоненты заняты более скромной работой «по хозяйству».

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

Первые версии SendMail, равно как и других почтовых программ, не требовали аутентификации пользователя перед отправкой почты. Никто не видел в этом особо изъяна (ведь никакого несанкционированного доступа к информации при этом не происходило [202]) Так продолжалось до тех пор, пока не появились первые спамеры, рассылающие по сети гигабайты бесполезного хлама. Непременным условиям их существования были, есть и останутся общедоступные сервера исходящей почты. Поэтому, понадобились технические средства, способные блокировать неугодных пользователей.

Перейти на страницу:

Похожие книги