Устанавливаем postfix как домашний почтовый сервер
Spring 2001.Задача
Dial-up выход в интернет. Два пользователя, 4 внешних почтовых ящика, 2 внутренних. Нужно закачивать почту, раскладывать ее по ящикам пользователей, сортировать. Уходящие письма хранить до ближайшего сеанса связи и автоматически отправлять после возобновления связи с Интернет.
Прелюдия
Не буду подробно рассматривать принципы построения почтовых Unix-систем. Для этого можно просмотреть специальную литературу или прочитать заметки Ю.Рязанцева и Р.Савельева, которые я поместил на сайте в разделе Документы / Это интересно. Так же о настройке почтовой системы прекрасно написано в сопроводительной брошюре ALTLinux в разделе "Настройка postfix и зачем нужен почтовый сервер на домашнем компьютере".
В качестве MTA выбрал postfix, тем более он "по-умолчанию" установлен в Spring2001. Вот его краткое описание:
Postfix aims to be an alternative to the widely-used sendmail program. Sendmail is responsible for 70 percent of all e-mail delivered on the Internet. With an estimated 100 million users, that's an estimated 10 billion (10^10) messages daily. A stunning number. Although IBM supported the Postfix development, it abstains from control over its evolution. The goal is to have Postfix installed on as many systems as possible. To this end, the software is given away with no strings attached to it, so that it can evolve with input from and under control by its users.
Настройка
Настройки минимальны. Все основное уже сделано разработчиками. Все настройки проводились из-под root'а.
В файл /etc/postfix/main.cf вписываем:
defer_transport=smtp
# Для того, чтобы сервер складывал отправленные письма в очередь и ждал сеанса связи с Интернет для их фактической отправки.
relayhost = smtp.xxxxx.ru
# Передавать письма SMTP серверу, который будет доставлять их адресатам.В файл /etc/postfix/ aliases вписываем имя пользователя, который будет принимать системные сообщения для root'а:
root: user_nameТеперь настраиваем доставку писем из внешних ящиков программой fetchmailconf. В результате в домашней папке root'а появился файл .fetchmailrc с таким содержимым:
# Configuration created Fri May 4 09:35:17 2001 by fetchmailconf set postmaster "postmaster" set bouncemail set no spambounce set properties "" poll pop.xxx.ru with proto POP3 user 'xxx' there with password 'xxx' is user1 here poll mail.xxxx.ru with proto POP3 user 'xxxx' there with password 'xxxx' is user1 here poll mail.xxxxx.ru with proto POP3 user 'xxxxx' there with password 'xxxxx' is user1 here poll pop.xxxxxx.ru with proto POP3 user 'xxxxxx' there with password 'xxxxxx' is user2 hereГде user1 и user2 - зарегистрированные пользователи локальной машины (сети)
Теперь немного автоматизируем процесс закачки почты. В домашней папке пользователя, который выходит через dial-up в Интернет создаем исполняемый скрипт в котором пишем:
su -c fetchmail
На рабочем столе создаем иконку, запускающую этот скрипт. В свойствах иконки ставим птицу на опции "Запускать в терминале", чтобы контролировать процесс.Теперь при активной Интернет-сессии достаточно щелкнуть по иконке, ввести пароль суперюзера, и процесс закачки почты стартует.
Для контроля над состоянием системного почтового ящика я настроил kbiff, который периодически его опрашивает и при наличии новых писем предупреждает.
Как все это выглядит в работе можно посмотреть на скриншоте.
28 Июня 2001