Эта заметка доступна на: English Castellano Deutsch Francais Italiano Nederlands Russian Turkce |
Автор John Perr Об авторе: Пользователь ОС Linux с 1994 г.; один из редакторов французской секции LinuxFocus. Содержание: |
Резюме:
Заметка рассказывает о конфигурировании sendmail и fetchmail
на компьютере, использующем интернет через PPP соединение. Такая конфигурация
позволяет использовать любой почтовый клиент Unix (не только Netscape). Отправлять
и принимать сообщения возможно при каждом PPP соединении.
Для управления почтой необходимо сконфигурировать 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 закончена. Теперь проведем тестирование, чтобы
быть уверенными, что все работает :
Создайте файл test.mail :
Subject: test local
(пустая строка обязательна)
|
/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...
Перед использованием нашего нового почтового сервера в 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 и отправьте сообщение.
/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 г.) выпуске журнала.
Webpages maintained by the LinuxFocus Editor team
© John Perr LinuxFocus.org 2000 Click here to report a fault or send a comment to Linuxfocus |
Translation information:
|
2000-07-05, generated by lfparser version 1.5