3.6.1.  Компоненты электронной почты Интернет

На рис. 3.21 изображены основные (концептуальные) составляющие системы электронной почты Интернет. Каждому сообщению соответствует источник и получатель. И источник, и получатель обладают каким-либо пользовательским интерфейсом к сетевой почтовой системе.

Рис. 3.21. Концептуальные составляющие системы электронной почты 

В общих чертах, почтовая система состоит из очереди исходящих сообщений, процесса-клиента, процесса-сервера и почтовых ящиков пользователей, хранящих доставленные сообщения. Несмотря на то, что в почтовую систему встраивается пользовательский интерфейс, он не обязан там присутствовать. То есть он может представлять собой отдельную программу, устроенную по принципу клиент-сервер и взаимодействующую с самой почтовой системой. Почтовый ящик (mailbox) носит соответствующее своему владельцу название. Им является либо адрес в формате «имя_пользователя@имя компьютера.имя_домена» либо файл-контейнер для промежуточной доставки. Файл-контейнер аналогичен местному почтовому отделению. Когда вы посылаете письмо, оно попадает сначала на местное почтовое отделение, откуда получатель его впоследствии заберет. Файл-контейнер хранит сообщение до тех пор, пока пользователь не заберет его оттуда.

На рис. 3.22 приведены настоящие компоненты системы электронной почты, в отличие от концептуальных на рис. 3.21. Обратите внимание на термины «агент пользователя» (user agent, UA) и «агент передачи почты» (message transfer agent, MTA). Как видим, агент пользователя заменяет почтовую программу, а агент передачи почты заменяет процесс-клиент и процесс-сервер.

Термин «агент» довольно часто встречается в документации Интернет. «Агент» — это программа специального назначения, выполняющая действия для пользователя или другой программы. В большинстве случаев почтовая программа называется агентом пользователя (UA). Точно также агент передачи почты (МТА) представляет собой клиент или сервер, выполняющий задачи по доставке или получению почты на сетевом компьютере.

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

Рис. 3.22. Реальные компоненты почтовой системы Интернет

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

Система электронной почты представлена агентами передачи почты — МТА. До того как обсудить задачи пользовательского агента, необходимо узнать немного больше о том, что же такое МТА. МТА умеют устанавливать TCP-соединение для связи с другими МТА. Протоколом этого соединения, как правило, является простой протокол передачи почты (SMTP). Этот протокол полностью описан в RFC 821, который так и называется «Простой протокол передачи почты» (Simple Mail Transfer Protocol, Postel, 1982).