Системы электронной почты
Категория: Электронная почта | Автор: admin | 17-05-2010, 15:31 | Просмотров: 3772

Теоретически система электронной почты состоит из четырех компонентов:

  • пользовательского агента, который предоставляет пользователям возможность читать и составлять сообщения;
  • транспортного агента, который пересылает сообщения с одного компьютера на другой;
  • агента доставки, который помещает сообщения в локальное хранилище сообщений;
  • агента доступа, который соединяет пользовательского агента с хранилищем сообщений (например, посредством протокола IMAP или POP). Этот компонент является необязательным.

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

Системы электронной почты

 

Пользовательские агенты

 

Эти программы используются для чтения и составления электронных сообщений. Первоначально сообщения могли содержать только простой текст, однако благодаря стандарту MIME (Multipurpose Internet Mail Extensions — многоцелевые расширения электронной почты в сети Internet) появилась возможность включать в них форматированный текст и присоединять к сообщениям разные файлы (в том числе вирусы). Стандарт MIME поддерживается большинством пользовательских агентов. Поскольку он не влияет на процесс адресации и доставки почты, мы не будем его рассматривать.

Одна из задач пользовательского агента — обеспечение того, чтобы текст сообщения, который может быть истолкован почтовой системой неправильно, не попал в нее "незащищенным". Примером является строка "From", которая служит разделителем сообщений.

Самым первым пользовательским агентом была программа /bin/mail. Сейчас имеется несколько программ этого класса. Вот перечень наиболее популярных из них:

  • /bin/mail — существовала в первоначальной версии UNIX;
  • /usr/ucb/mail — появилась в BSD;
  • mh и nmh — разработаны на основе кода компании Rand Corporation, есть также пользовательская оболочка exmh, созданная Брентом Уэлшем (Brent Welch) из компании Scriptics;
  • pine — разработана в университете штата Вашингтон (www.washington.edu/pine);
  • elm — разработана Дэвидом Тейлором (David Taylor), сейчас поддерживается организацией Elm Development Group и Кари Хуррта (Kari Hurrta). доступна на FTP-узле ftp.virginia.edu;
  • mutt — разработана Михаэлем Элкинзом (Michael Elkins), доступна на FTP-узле ftp.mutt.org;
  • rmail и VM — пользовательские агенты, которые являются частью редакторов emacs и XEmacs;
  • Netscape Communicator — разработана компанией Netscape Communications для различных платформ;
  • Eudora — разработана компанией Qualcomm для систем Macintosh и персональных компьютеров, работающих под управлением Windows;
  • Outlook Express — разработана компанией Microsoft для Windows.

Некоторые пользовательские агенты поддерживают системный файл конфигурации, в котором задаются стандартные установки для всех пользователей. Любой пользователь может изменить эти значения, создав в своем начальном каталоге персональный файл конфигурации. Пользовательские агенты электронной почты для Windows и Macintosh конфигурируются посредством графического интерфейса самого приложения. Большинство из них также допускает глобальную и автоматическую настройку на случай эксплуатации в крупной организации.

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

Таблица 19.3. Файлы конфигурации и характеристики пользовательских агентов

Пользовательский агент

Системный файл

Персональный файл

MIME

POP

IMAP

SMTP

bin/mail

 

 

 

 

ucb/mail

Mail.rc

.mailrc

 

 

 

 

*mh

.mh_profile

.maildelivery

+

+

 

+

pine

pine.conf

.pinerc

+

+

+

+1

elm

lib/elm.rc

.elm/elmrc

+

+2

+2

 

mutt

Muttrc

.muttrc

+

+

+

 

Netscape

+

+

+

+

Eudora

+

+

+

+

Outlook Express

+

+

+

+

1 Программа pine по умолчанию вызывает sendmail, однако поддерживает и протокол SMTP.

2 В стандартной реализации не поддерживается, однако доступна соответствующая "заплата".

 

Столбец "SMTP" указывает на способ передачи почты от пользовательского агента к транспортному агенту или агенту подачи. Наличие отметки означает, что пользовательский агент открывает сетевое соединение непосредственно к транспортному агенту или агенту подачи. Отсутствие отметки говорит о том, что он самостоятельно запускает программу транспортного агента или агента подачи.

 

Транспортные агенты

 

Задача транспортного агента — принимать почту от пользовательского агента, интерпретировать адреса получателей и каким-то образом направлять почту на соответствующие компьютеры для последующей доставки. Кроме того, большинство транспортных агентов выступает в качестве агентов подачи, осуществляя первоначальную вставку новых сообщений в почтовую систему. Транспортные агенты работают по протоколу SMTP (Simple Mail Transport Protocol — простой протокол передачи почты), который определен в документе RFC821, или по протоколу ESMTP (Extended SMTP), определенному в документах RFC1869, 1870, 1891 и 1985.

Для UNIX разработано несколько транспортных агентов (PMDF, Postfix, smail, qmail, exim, zmailer и др.), но самым мощным, гибким и поэтому самым распространенным (75% по последним оценкам) является sendmail.

 

Агенты доставки

 

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

Для обслуживания получателя каждого типа может понадобиться отдельный агент. Программа /bin/mail — это агент доставки для локальных пользователей. Программа /bin/sh — агент доставки для почты, которая направляется в файл или программу. Последние версии sendmail осуществляют доставку почты при помощи более надежных локальных агентов доставки, именуемых mail.local и smrsh. В качестве агента может также использоваться программа procmail (описывается в конце параграфа 19.8; доступна на Web-узле www.procmail.org).

Программу mail.local не следует использовать в таких системах, как, например, HP-UX, которые осуществляют доставку почты в пользовательские почтовые ящики, меняя принадлежность файлов при помощи команды chown. В старых версиях Solaris также не следует применять mail.local, однако эта программа поддерживается вплоть до версии Solaris 7.

 

Хранилища сообщений

 

Когда из университетской игрушки электронная почта превратилась в средство обслуживания организаций наподобие America Online с миллионами подписчиков, файловая система UNIX перестала подходить для хранения сообщений. Поиск в каталоге, который содержит миллионы почтовых ящиков, — занятие очень дорогое.

Хранилище сообщений — это место на локальном компьютере, где располагается электронная почта. Обычно для этого используется каталог /var/spool/mail или /var/mail. Почта хранится в файлах, которые называются в соответствии с регистрационными именами пользователей. Однако так выглядит обычное хранилище. Провайдеры, у которых тысячи или миллионы клиентов, ищут другие технологии организации хранилищ (обычно это базы данных).

В системах, где применяется каталог /var/spool/mail или /var/mail, он создается во время инсталляции операционной системы. Режим доступа к данному каталогу должен иметь значение 775 (имя группы — mail).

 

Агенты доступа

 

Такие программы, как imapd и spop, являются агентами доступа для пользователей ПК, Macintosh или UNIX, чья почта доставляется на UNIX-сервер, а затем загружается с него по протоколу IMAP (Internet Message Access Protocol — протокол доступа к сообщениям в сети Internet) или POP (Post Office Protocol — почтовый протокол) соответственно. (Оба протокола рассматриваются в параграфе 19.3.)

 

Агенты подачи почты

 

Необходимость в программах этого класса возникла в связи с ростом объема почтовых узлов. На большом узле транспортный агент вынужден тратить много времени на предварительную обработку сообщений. Он должен:

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

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

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

В частности, агент подачи должен убедиться в том, что все имена узлов являются полностью определенными. Кроме того, перед добавлением к адресу локального доменного имени он проверяет, являются ли имена локальных узлов легитимными. Агент подачи также исправляет заголовки сообщений, если в них есть ошибки (и добавляет заголовки, если они отсутствуют). К примеру, могут добавляться заголовки "From" и "Date" и корректироваться заголовок "Message-Id". Наконец, агент подачи может переписать адрес отправителя, поменяв регистрационное имя на заданное внешнее (например, в формате Имя_Фамилия).

Чтобы этот механизм работал, пользовательский агент должен быть сконфигурирован на подключение к агенту подачи через порт 587, а не через порт 25, который традиционно применяется для электронной почты. Если пользовательский агент не может работать с портом 587, существует другой путь: вызвать агент подачи через порт 25, но не на том сервере, на котором работает транспортный агент. Необходимо также сконфигурировать транспортный агент таким образом, чтобы он не проделывал повторно работу, выполненную агентом подачи. Дублирование не скажется на правильности обработки почты, но отразится на производительности.

Программа sendmail может действовать и как агент подачи, и как транспортный агент. В sendmail версии 8.10 агент подачи включен по умолчанию. Эта конфигурация устанавливается при помощи средства no-canonify и макроса DAEMON_OPTIONS (параграф 19.8). Когда программа sendmail играет двойную роль, она предоставляет каждый из сервисов на отдельном порту: порт 25 для транспортного агента и порт 587 (по умолчанию) для агента подачи.


 (голосов: 1)
Версия для печати | Комментариев: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


 
Логин
Пароль
 

 
Locations of visitors to this page