Для управления почтой необходимо сконфигурировать MTA (Mail Transfer Agent). Самый популярный (и давно используемый) - sendmail, но существуют и другие : более быстрый и простой в конфигурировании qmail и exim, входящий в стандартные дистрибутивы Debian. В заметке рассмотрим sendmail и конфигурационный пакет из Университета Беркли от Eric Allman. Для получения почты от ISP (Internet Service Provider) необходимо настроить fetchmail, использующий протоколы pop3 или imap. Можно также использовать uucp, но в рамки заметки не входит рассмотрение данного протокола.
Настройка
Для настройки sendmail необходимо установить следующие пакеты (rpm формат):
sendmail-8.8.7-20
sendmail-cf-8.8.7-20
sendmail-doc-8.8.7-20
Имена пакетов и номера версий могут различаться в зависимости от используемого дистрибутива. Наиболее важные первые два пакета.
Используйте следующие рекомендации для настройки :
Настройка sendmail закончена. Теперь проведем тестирование, чтобы быть уверенными, что все работает : Создайте файл test.mail :
Subject: test local first line of my message (пустая строка обязательна)
и выполните : /usr/bin/sendmail -v dede < test.mail
На экране должны появиться следующие строки :
dede... Connecting to local
dede... Sent
Загрузите почтовую программу и проверьте почту.
Настройка Netscape для чтения локальной почты:
Выберите в меню Edit/Preferences/Mail и перейдите к закладке Groups/Mail Server
Наберите localhost.localdomain в поле Outgoing mail (SMTP) server
Выберите movemail/built-in в поле Mail server type
Измените права доступа файл /var/spool/mail командой chmod 1777 /var/spool/mail.
Можно использовать команду chmod 777, но в этом случае могут возникнуть проблемы с безопасностью данных. Команда chmod 1777 означает, что только владелец файла может удалить его, а не все, кто имеет право записи в каталог.
Теперь ваш компьютер доставляет почту непосредственно Netscape, даже если вы не связываетесь с Internet. Конечно, возможно использование и других почтовых клиентов : XFmail, emacs, mutt, pine etc...
Настройка fetchmail
Перед использованием нашего нового почтового сервера в Internet,необходимо настроить fetchmail для получения почты от ISP: Создайте файл .fetchmailrc в /home/dede:
poll pop.isp.net protocol POP3
user toto is dede
password XXXXXXX
где toto и XXXXX ваш логин и пароль для регистрационной записи на pop3.isp.net. При наличии нескольких почтовых ящиков - создайте подобную строку для каждого. Для корректной работы fetchmail необходимо установить следующие права доступа для файла .fetchmailrc :
-rw------- 1 dede dede 189 oct 6 21:45 /home/dede/.fetchmailrc
Для тестирования в Internet выполните следующие действия :
Создайте сообщение (без подключения) на зеркальный почтовый адрес такой как: echo@univ-rennes1.fr или echo@cnam.fr
Отправьте сообщение.
Оно появится в почтовой очереди когда вы выполните команду : mailq. Далее подключитесь к ISP и отправьте сообщение.
/usr/bin/sendmail -q
Команда sendmail -q отправляет сообщение, находящееся в очереди. Через некоторое время загрузите fetchmail и примите сообщение, пришедшее зеркального почтового адреса. После получения всех сообщений можно прервать связь.
Автоматизация
После окончательной установки настроим автоматическое выполнение для каждого соединения.
При использовании PPP - соединения файлы /etc/ppp/ip-up и ip-down исполняются каждый раз при установлении или прекращении сеанса связи. Убедитесь, что следующие строки присутствуют в файлах, если нет - создайте их : [ -x /etc/ppp/ip-down.local ] && /etc/ppp/ip-down.local $* В файл /etc/ppp/ip-up добавляется : [ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local $*
Далее файлы /etc/ppp/ip-up и ip-down загружают файлы ip-up.local и ip-down.local :
#!/bin/bash
# /etc/ppp/ip-up.local
#Record connection parameters
echo `date` $4 $5 ppp-on >> /etc/ppp/history
tail -n 1 connect-errors >> /etc/ppp/history
# Send waiting mail
echo Sending mail... > /dev/console
/usr/sbin/sendmail -q
echo Mail sent. > /dev/console
# Get mail waiting on the pop server
echo Getting mail... > /dev/console
fetchmail > /dev/console 2>&1
echo Got mail. > /dev/console
#End
exit 0
# end of /etc/ppp/ip-up.local
Основными являются строки sendmail -q и fetchmail. Остальные выводят сообщения о получении почты на консоль и ведут запись соединений в файле /etc/ppp/history.
#!/bin/bash
# /etc/ppp/ip-down.local
#Record connection parameters
echo `date` ppp-off >> /etc/ppp/history
#end
exit 0
# end of /etc/ppp/ip-down.local
Эти файлы исполняются с привилегией root, поэтому необходимо создать копию файла .fetchmailrc в папке /root.
При наличии постоянного соединения с Internet можно настроить sendmail таким образом, чтобы отправка почты осуществлялась регулярно : Команда sendmail -bd -q10m для отправки почты каждые 10 минут. Для получения почты каждые 10 минут (600 секунд) необходимо выполнить команду : fetchmail -d 600
Обычно эти команды выполняются в загрузочных файлах в каталогах /etc/rc или /etc/rc.d/ (в зависимости от конфигурации).
Заключение
В данной конфигурации почта отправляется из очереди и принимается от ISP. Можно использовать программы (например : xbiff or xmailbox) для оповещения о наличии почты. Почту можно сортировать и фильтровать программой procmail. Об этом можно прочитать в заметке написанной Angel Lopez в Ноябрьском (1997 г.) выпуске журнала.