Опубликован: 21.11.2006 | Уровень: специалист | Доступ: платный
Лекция 13:

Подключение почтового сервера к провайдеру Internet

Коммутируемое РРР-соединение с использованием почтовой очереди на сервере провайдера

В третей схеме подключения почтового сервера также используется коммутируемое РРР-соединение, по которому осуществляется обмен почтовыми сообщениями между локальным почтовым сервером и сервером провайдера. Отличие этой схемы от предыдущих заключается в том, что почта для вашего домена помещается не в отдельный почтовый ящик на сервере провайдера, а в очередь почтовых сообщений на этом сервере. Дальнейшая доставка почты на ваш почтовый сервер полностью зависит от конфигурации программы sendmail на его сервере электронной почты.

Итак, после того как ваш почтовый сервер установил РРР-соединение с сервером электронной почты провайдера, он должен еще установить SMTP-соединение, что позволит ему запросить с помощью команды ETRN почту из очереди почтовых сообщений. Как уже было сказано в "Протокол SMTP" , в ответ на команду ETRN почтовый сервер провайдера должен создать еще одно SMTP-соединение с локальным почтовым сервером домена и передать по нему все сообщения из своей очереди, которые адресованы в этот домен. В таком случае в заголовки сообщений не вносятся никакие изменения. Работа почтового сервера по такой схеме представлена на рис. 13.4.

Схема работы почтового сервера с использованием коммутируемого РРР-соединения и почтовой очереди на сервере провайдера

Рис. 13.4. Схема работы почтового сервера с использованием коммутируемого РРР-соединения и почтовой очереди на сервере провайдера
Настройка РРР-соединения

Работа РРР-соединения в данной схеме полностью совпадает с предыдущей схемой. Для организации коммутируемых соединений по протоколу РРР необходимо установить программы diald и pppd, а также настроить файл diald.conf в соответствии с примером, приведенным в листинге 13.4. Как и в предыдущей схеме, программа diald работает в фоновом режиме и отслеживает весь IP-трафик в сети. При наличии исходящих сообщений с ее помощью может быть инициирована установка РРР-соединения. По завершении сеанса работы программа ожидает 30 секунд, после чего разрывает РРР-соединение. При использовании такой схемы подключения почтового сервера к провайдеру Internet, возможно, понадобится увеличить интервал времени ожидания при установлении соединения. Это необходимо для того, чтобы почтовый сервер провайдера получил достаточно времени для организации обратного SMTP-соединения с локальным почтовым сервером. Для увеличения интервала ожидания отредактируйте файл /usr/lib/standard.filter, который прилагается к программе diald. Последняя строка в этом файле должна выглядеть примерно так:

accept any 30 any

Здесь задается интервал ожидания 30 секунд. Увеличьте его, заменив числовое значение интервала 30 на величину интервала, согласованную с провайдером сети Internet, и сохраните полученный файл.

Конфигурация sendmail

Поскольку РРР-соединение не поддерживается в программе sendmail постоянно, необходимо предусмотреть работу с интеллектуальным хостом, как и в предыдущем случае. Поэтому сконфигурируйте sendmail так, чтобы пользователи вашей сети могли пересылать свои сообщения через локальный почтовый сервер на базе ОС Linux. Для работы по рассматриваемой нами схеме можно без изменений использовать файл конфигурации sendmail, полученный для предыдущей схемы подключения. Этот файл будет таким же, как и приведенный в листинге 13.5 dialup.mc. Необходимо, кроме того, создать базу данных, аналогичную представленной в листинге 13.3, с помощью которой удаленные клиенты сети, используя протокол SMTP, смогут пересылать почту через ваш сервер электронной почты.

Конфигурация fetchmail

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

С этой целью в fetchmail используется команда ETRN, описанная в "Протокол SMTP" . Таким образом, сама программа fetchmail не получает никаких сообщений с сервера электронной почты, она лишь указывает почтовому серверу провайдера инициировать новое SMTP-соединение в обратном направлении и завершает свою работу. В листинге 13.8 представлен пример файла .fetchmailrc, который используется для вызова почтового сервера провайдера с помощью команды ETRN.

1 poll mail.isp.net with proto ETRN
2 localdomains smallorg.org
3 no dns
4 no envelope
Листинг 13.8. Пример файла .fetchmailrc для вызова почтового сервера

В строке 1 листинга 13.8 указан удаленный сервер, к которому необходимо подключаться. При этом программа fetchmail должна выдать команду ETRN, чтобы началась передача почты от почтового сервера провайдера на локальный почтовый сервер. В строке 2 указано альтернативное имя домена, на который почтовый сервер под управлением ОС Linux будет принимать почту. Следует заменить это имя на зарегистрированное вашей организацией доменное имя. В строках 3 и 4 указывается, что в fetchmail не используется проверка подлинности доменных имен с помощью DNS, а также игнорируются поля X-Recieve-To: в заголовках формата RFC 822.

Автоматизация получения почты

Как и в предыдущей схеме, необходимо обеспечить запуск fetchmail через равные интервалы времени для проверки наличия почты на сервере провайдера. Проще всего воспользоваться стандартной для ОС Linux утилитой cron. Для задания времени и частоты запуска fetchmail создайте cron-таблицу для пользователя root, аналогичную приведенной в листинге 13.7. Каждый раз при запуске программы fetchmail программа diald будет инициировать установку РРР-соединения с сервером электронной почты провайдера.

Valentin Diduk
Valentin Diduk
Украина, одесса, кпи, 2010
Евгений Олабин
Евгений Олабин
Беларусь, Гродно