Для управления почтой необходимо сконфигурировать MTA (Mail Transfer Agent). Самый популярный (и давно используемый) - sendmail, но существуют и другие : более быстрый и простой в конфигурировании qmail и exim, входящий в стандартные дистрибутивы Debian. В заметке рассмотрим sendmail и конфигурационный пакет из Университета Беркли от Eric Allman.Для получения почты от ISP (Internet Service Provider) необходимо настроить fetchmail, использующий протоколы pop3 или imap. Можно также использовать uucp, но в рамки заметки не входит рассмотрение данного протокола.
Для настройки sendmail необходимо установить следующие пакеты (rpm формат):
Имена пакетов и номера версий могут различаться в зависимости от используемого дистрибутива. Наиболее важные первые два пакета.
Используйте следующие рекомендации для настройки :
/usr/lib/sendmail-cf/cf/config.mc
# start of config.mc include(`../m4/cf.m4')dnl OSTYPE(`linux')dnl define(`SMTP_MAILER_FLAGS', `e9')dnl FEATURE(redirect)dnl FEATURE(nocanonify)dnl FEATURE(always_add_domain)dnl FEATURE(local_procmail)dnl GENERICS_DOMAIN(localhost.localdomain localhost localhost) FEATURE(genericstable) FEATURE(masquerade_envelope)dnl define(`confCF_VERSION',`dede's cf - 22/05/98')dnl define(`confCON_EXPENSIVE',`True')dnl define(`confME_TOO',`True')dnl define(`confCOPY_ERRORS_TO',`Postmaster')dnl define(`confDEF_CHAR_SET',`ISO-8859-1')dnl define(`confMIME_FORMAT_ERRORS',`True')dnl define(`SMART_HOST',`smtp8:[smtp.isp.net]')dnl define(`confTO_QUEUEWARN',`24h') MAILER(local) MAILER(smtp) # End of config.mc
/etc/genericstable
dede: toto@isp.net root: toto@isp.net news: toto@isp.net
/etc/alias
MAILER-DAEMON: postmaster postmaster: root
/etc/nsswitch.conf
passwd: files shadow: files group: files hosts: files dns services: files networks: files protocols: files rpc: files ethers: files netmasks: files bootparams: files netgroup: publickey: automount: files aliases: files
/etc/sendmail.cf
m4 config.mc > /etc/sendmail.cf
-rw------- 1 root root 26468 mai 12 22:52 /etc/sendmail.cf
/usr/bin/sendmail -bi -oA/etc/genericstable
/etc/genericstable.db
newaliases
/etc/hosts
127.0.0.1 localhost.localdomain localhost localhost
kill `head -1 /var/run/sendmail.pid`/usr/bin/sendmail -bd -os
Тестирование sendmail
Настройка sendmail закончена. Теперь проведем тестирование, чтобы быть уверенными, что все работает :Создайте файл test.mail :
Subject: test localfirst line of my message
и выполните :/usr/bin/sendmail -v dede < test.mail
/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 означает, что только владелец файла может удалить его, а не все, кто имеет право записи в каталог.
chmod 777
chmod 1777
Теперь ваш компьютер доставляет почту непосредственно Netscape, даже если вы не связываетесь с Internet. Конечно, возможно использование и других почтовых клиентов : XFmail, emacs, mutt, pine etc...
Перед использованием нашего нового почтового сервера в 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 выполните следующие действия :
Оно появится в почтовой очереди когда вы выполните команду : mailq. Далее подключитесь к ISP и отправьте сообщение.
mailq
/usr/bin/sendmail -q
Команда sendmail -q отправляет сообщение, находящееся в очереди. Через некоторое время загрузите fetchmail и примите сообщение, пришедшее зеркального почтового адреса. После получения всех сообщений можно прервать связь.
sendmail -q
После окончательной установки настроим автоматическое выполнение для каждого соединения.
При использовании 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 $*
[ -x /etc/ppp/ip-down.local ] && /etc/ppp/ip-down.local $*
[ -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.
sendmail
fetchmail
#!/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.
root
.fetchmailrc
/root
При наличии постоянного соединения с Internet можно настроить sendmail таким образом, чтобы отправка почты осуществлялась регулярно :Команда sendmail -bd -q10m для отправки почты каждые 10 минут.Для получения почты каждые 10 минут (600 секунд) необходимо выполнить команду : fetchmail -d 600
sendmail -bd -q10m
fetchmail -d 600
Обычно эти команды выполняются в загрузочных файлах в каталогах /etc/rc или /etc/rc.d/ (в зависимости от конфигурации).
/etc/rc
/etc/rc.d/
В данной конфигурации почта отправляется из очереди и принимается от ISP. Можно использовать программы (например : xbiff or xmailbox) для оповещения о наличии почты. Почту можно сортировать и фильтровать программой procmail. Об этом можно прочитать в заметке написанной Angel Lopez в Ноябрьском (1997 г.) выпуске журнала.