Документация по ОС FreeBSD Вторник, 07.05.2024, 03:07
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Mail

Sendmail and Fetchmail: локальный почтовый сервер

Введение

Для управления почтой необходимо сконфигурировать 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

Имена пакетов и номера версий могут различаться в зависимости от используемого дистрибутива. Наиболее важные первые два пакета.

Используйте следующие рекомендации для настройки :

  1. во - первых мы принимаем, что:
    • имя вашего ISP - isp.net
    • для отправки почты вы используете smtp.isp.net
    • для получения почты вы используете pop.isp.net
    • ваш email - toto@isp.net
    • ваша регистрационная запись "dede"
  2. Создайте файл : /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
    

    Строка define(`SMART_HOST'.... конфигурирует sendmail для отправки всей внешней почты через ISP вместо прямой доставки.
  3. Также создайте файл /etc/genericstable:
    dede: toto@isp.net
    root: toto@isp.net
    news: toto@isp.net
    
  4. Проверьте, что /etc/alias содержит строки :
    MAILER-DAEMON: postmaster
    postmaster: root
    
  5. Измените или создайте файл /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 
    
    (Каждая запись, кроме "host", должна содержать только "files")
  6. Создайте /etc/sendmail.cf :
    m4 config.mc > /etc/sendmail.cf
    с правами доступа :
    -rw------- 1 root root 26468 mai 12 22:52 /etc/sendmail.cf
  7. Создайте базу преобразования адресов :
    /usr/bin/sendmail -bi -oA/etc/genericstable
    Файл /etc/genericstable.db должен быть создан.
  8. Перечитайте таблицу псевдонимов :
    newaliases
  9. Файл /etc/hosts должен содержать следующую строку:
    127.0.0.1 localhost.localdomain localhost localhost
  10. Перезагрузите sendmail :
    kill `head -1 /var/run/sendmail.pid`
    /usr/bin/sendmail -bd -os 

Тестирование sendmail

Настройка 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 г.) выпуске журнала. 

Категория: Mail | Добавил: oleg (29.10.2007)
Просмотров: 1318 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024