[mail@dialup]
Принцип функционирования
VAP home logo

Как уже было сказано, полнофункциональная доставка электронной почты при коммутируемом доступе в сеть для ОС семейства UNIX - нетривиальная, но вполне реализуемая задача. Под термином "полнофункциональная" здесь понимается "несколько" больший спектр возможностей чем предоставляемый пользователю набор функций каким-либо отдельно взятым MUA, как например, Microsoft Outlook Express, Netscape Communicator, The Bat и им подобные. Поскольку хост использующий коммутируемый доступ в сеть по определению не может быть постоянно доступен в сети, то необходимо использование технологии с применением некой транзитной почтовой станции или станций, которые постоянно присутствуют в сети и через которые выполняется транзитная доставка. Именно такую технологию реализует описанная здесь конструкция.

Доставка электронной почты делится на две основные операции - отправку почты и ее получение. Рассмотрим каждую особо.

Отправка почты

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

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

Установка в очередь должна выполняться без какой-либо обработки сообщений, поскольку любой анализ адресов отправителя и назначения потребует обращений к сервису DNS с целью определения достоверности домена, адреса почтовой системы обрабатывающей почту для домена и получения прочей информации. На хостах имеющих коммутируемый доступ держать сервис DNS бессмысленно, поэтому приходится пользоваться внешними DNS серверами, а это значит, что каждый запрос к DNS требует наличия соединения с сетью, которое, опять же, нужно устанавливать.

Отправка очереди при коммутируемом соединении тоже имеет свои нюансы. Наиболее простым представляется отправка сообщений непосредственно по системам назначения, однако за этой простотой кроется один "подводный камень". Дело в том, что принимающая система может проверить и наверняка проверит отправляющую, то есть нашу, на, образно говоря, правомочность отправки почты. Проверка эта осуществляется на основе выяснения возможности доставки обратной почты. Такая возможность определяется наличием в DNS сервисе соответствующих специальных записей содержащих информацию о том как и куда должна передаваться почта для конкретной системы. Естественно, для хостов с коммутируемым доступом подобных записей существовать не может. По этой причине в прямой доставке почты нам может быть отказано. Кроме того, проверка доставляемости почты с нашей стороны является нетривиальной задачей для локального MTA в случае коммутируемого доступа в сеть. Выходом из сложившейся ситуации является использование промежуточного MTA, обычно принадлежащего провайдеру, услугами доступа в сеть которого мы пользуемся.

Провайдерские MTA, как правило, настраиваются таким образом, что без проблем принимают для пересылки почту исходящую от MUA и MTA функционирующих на клиентских хостах. MTA провайдера выполняющий пересылку почты по определению является полнофункциональным почтовым шлюзом, который способен выполнить все необходимые проверки при доставке почты, корректно настроен и интегрирован в сеть. Таким образом, логично переложить все "тяготы" по отправке исходящей почты на него.

Подытожим:

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

В качестве локального MTA воспользуемся стандартным для большинства систем семейства UNIX агентом доставки почты - sendmail.

Получение почты

Как уже было сказано - прямая доставка почты хосту, имеющему коммутируемое соединение с сетью, почти невозможна. По этой причине входящая почта должна доставляться куда-нибудь в другое место, где бы она накапливалась и хранилась до момента, когда будет оттуда забрана. В качестве такой "перевалочной станции" замечательно подходят почтовые IMAP и POP3 сервера. То есть речь идет о заведении почтового бюджета где-нибудь на почтовом сервере с доступом к почтовому ящику по протоколам POP3 или IMAP. Обычно такой сервис предоставляют провайдеры одновременно с услугой доступа в сеть. Если у вашего провайдера нет подобной услуги или за нее хотят денег, то есть повод задуматься о смене провайдера. Впрочем, завести себе почтовый ящик с возможностью доступа по протоколу POP3 можно и на бесплатных службах подобных Mail.RU.

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

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




ФОБОС: погода в г.Тольятти