Exim4 это программа, обеспечивающая доставку писем локальным пользователям, а так же их пересылку внешнему SMTP-серверу.
Работа Exim4 основана на логических элементах — драйверах: роутерах и транспортах. Роутер производит операции над адресом и определяет, как дальше пойдет процесс доставки сообщения: оно будет передано транспорту как есть или его адрес будет переписан, или процесс доставки следует прервать. Транспорты передают копию сообщения из почтовой очереди в указанное место назначения (файл, pipe, удаленный хост, etc).
Установка
В дистрибутиве debian программа представлена в двух модификациях: exim4-daemon-light и exim4-daemon-heavy. Дальнейшее описание приводиться на примере exim4-daemon-heavy.
Пакет присутствует в хранилище пакетов debian.
Для установки пакета
- в командной строке: следует выполнить команду # apt-get install exim4-daemon-heavy exim4 exim4-config
- в графическом режиме: воспользоваться специализированной программой управления пакетами
После установки пакет готов к использованию в качестве локального MTA.
Некоторые часто используемые команды
# dpkg-reconfigure exim4-config - (пере)конфигурирование пакета
# /etc/init.d/exim4 restart - перезапуск сервера
# tail -f /var/log/exim4/mainlog - просмотр журнала работы
# iceweasel /usr/share/doc/exim4-base/README.Debian.html - документация Exim4
Файлы конфигурации
Для сборки текущей конфигурации сервера
- в диалоговом режиме может быть использована команда
# dpkg-reconfigure exim4-config
при этом вводимые параметры записываются в файл /etc/exim4/update-exim4.conf.conf
а сам exim4 перезапускается.
- в ручном режиме осуществляется изменение файлов конфигурации, расположеных в каталоге /etc/exim4/, с последущим обновлением
# update-exim4.conf
Результат размещается в файл /var/lib/exim4/config.autogenerated.
Настройка Exim4 как сервера локальной сети
Exim4 может выступать в качестве локального MTA-агента и SMTP-сервера и обеспечивать тем самым обмен электронными письмами пользователей локальной сети.
Для настройки Exim4 как локального сервера
- настраивается пакет, например с помощью команды
# dpkg-reconfigure exim4-config
с примерным ответом на вопросы
Общий тип почтовой конфигурации: доставка только локальной почты
Почтовое имя системы: localhost
IP-адреса, с которых следует ожидать входящие соединения SMTP: 127.0.0.1; 192.168.0.1
Другие места назначения, для которых должна приниматься почта: доменного имя почтовой системы
Сокращать количество запросов DNS до минимума (дозвон по требованию)? нет
Метод доставки локальной почты: mbox формат в /var/mail/
Разделить конфигурацию на маленькие файлы? нет
- на рабочей станции с запущенным exim4 создаются локальные пользователи, которые и будут выступать в качестве пользователей почтовой системы
# adduser newuser
или с помощью графической программы kuser
На этом сервер настроен и готов к работе.
При указании в Почтовом клиенте IP-адреса сервера с Exim4 и стандартного порта 25 обеспечивается приемка почты и размещение ее в одноименном mbox-файле в каталоге /var/mail/ из локальной сети и/или с локальной рабочей станции для всех зарегистрированных пользователей. При указании неверныз почтовыз адресов получателей сервер почту не принимает.
Замечание:
Описанная конфигурация Exim4 достаточна для организации почтового сервера предприятия на сервере терминалов.
Для получения писем в этом случае даже отсутствует необходимость развёртывания POP3-сервера, в связи с
возможность доступа почтовых клиентов к своим локальным ящикам напрямую.
Настройка Exim4 как локального MTA-агента
Exim4 обеспечивает доставку почты с рабочей станции локальной сети почтовому серверу. Это может быть использовано, например при сборке служебных писем с рабочих станций локальной сети на общий административный почтовый ящик.
Для настройки Exim4 в качестве MTA-агента рабочей станции
- при использовании авторизованного доступа на почтовый SMTP-сервер локальной сети, в файл /etc/exim4/passwd.client добавляется соответствующий пользователь и пароль
- настраивается пакет, например с помощью команды
# dpkg-reconfigure exim4-config
с примерным ответом на вопросы
Общий тип почтовой конфигурации: отправка почты через smarthost; прием по SMTP или через fetchmail
Почтовое имя системы: localhost
IP-адреса, с которых следует ожидать входящие соединения SMTP: 127.0.0.1
Другие места назначения, для которых должна приниматься почта:
IP-адрес или имя хоста являющегося исходящим smarthost: ip почтового сервера
Скрывать локальное почтовое имя в исходящей почте? да
Видимое доменное имя локальных пользователей: доменного имя почтовой системы
Сокращать количество запросов DNS до минимума (дозвон по требованию)? нет
Метод доставки локальной почты: mbox формат в /var/mail/
Разделить конфигурацию на маленькие файлы? нет
На этом настройка Exim4 завершена и он готов к работе для пересылки писем на почтовый сервер локальной сети.
Для использования следует добавить строку MAILTO в файлах конфигурации демона cron, например
# echo "[email protected]" >>/etc/crontab
# cd /etc/; crontab crontab - и применить новую конфигурацию
Настройка Exim4 как SMTP-шлюза
Exim4 предоставляет возможность пересылки писем на внешний SMTP-сервер (relay-агент, SMTP-шлюз). Это может быть необходимо например для доставки писем из локальной сети в интернет через рабочую станцию - шлюз доступа в глобальную сеть.
Для настройки Exim4 в качестве elay-агента для пересылки писем на внешний SMTP-сервер
- при использовании авторизованного доступа на внешний почтовый SMTP-сервер, в файл /etc/exim4/passwd.client добавляется соответствующий пользователь и пароль
- настраивается пакет, например с помощью команды
# dpkg-reconfigure exim4-config
с примерным ответом на вопросы
Общий тип почтовой конфигурации: отправка почты через smarthost; прием по SMTP или через fetchmail
Почтовое имя системы: localhost
IP-адреса, с которых следует ожидать входящие соединения SMTP: 127.0.0.1 ; 192.168.0.2
Другие места назначения, для которых должна приниматься почта:
Машины, для которых доступна релейная передача почты: 192.168.0.0/24 (маска локальной сети)
IP-адрес или имя хоста являющегося исходящим smarthost: smtp.mail.ru (ip внешнего почтового сервера)
Скрывать локальное почтовое имя в исходящей почте? да
Видимое доменное имя локальных пользователей: mail.ru (имя целевой почтовой системы)
Сокращать количество запросов DNS до минимума (дозвон по требованию)? нет
Метод доставки локальной почты: mbox формат в /var/mail/
Разделить конфигурацию на маленькие файлы? нет
На этом настройка Exim4 завершена и он готов к работе для пересылки писем на внешний почтовый сервер.
При обращении smtp-клиента из локальной сети по стандартному порту 25 на ip-адрес шлюза интернет происходит создание smtp-сессии напрямую до внешнего почтового ящика. В случае успеха происходит передача почты от почтового клиента пользователя на внешний почтовый smtp-сервер.
Настройка Exim4 как SMTP-сервера
Exim4 предоставляет возможность приёма писем из интернет и пересылки их локальным пользователям внутренний почтовый сервер (SMTP-сервер). Это может быть необходимо, например для организации внешнего SMTP-сервера в почтовой системе предприятия.
Для настройки Exim4 в качестве SMTP-сервера интернет
- в файл конфигурации /etc/exim4/update-exim4.conf.conf добавляются например такие строки
dc_eximconfig_configtype='smarthost' Общий тип почтовой конфигурации
dc_other_hostnames=
dc_local_interfaces=
dc_readhost='tdkare.ru' Видимое доменное имя локальных пользователей
dc_relay_domains='tdkare.ru' Домены, для которых доступна релейная передача почты
dc_minimaldns='false'
dc_relay_nets='192.168.0.0/24' Машины, для которых доступна релейная передача почты
dc_smarthost='192.168.0.10' IP-адрес или имя хоста являющегося исходящим smarthost
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
- выполняется обновление конфигурации
# update-exim4.conf
На этом настройка Exim4 завершена и он готов к работе в качестве SMTP-сервера.
При обращении внешних почтовых клиентов из глобальной сети по стандартному порту 25 на IP-адрес шлюза интернет происходит создание smtp-сессии, приёмка и пересылка почты на внутренний почтовый SMTP-сервер локальной сети.
Exim4 и procmail
Одним из поддерживаемых транспортов Exim4 является агент Procmail.
Замечание:
В процессе использования Exim4 создалось впечатление (?) что при наличии файла конфигурации /etc/procmailrc (? ~/.procmailrc)
передачи письма для доставки от MTA к procmail и далее локальному пользователю не происходит.
Для поддержки доставки писем локальным пользователя через Procmail
- в файле /etc/exim4/exim4.conf.template заменяется
строку require_files = ${local_part}:\
на require_files = \
- (пере)запускается создание файла конфигурации
# dpkg-reconfigure exim4-config
с примерным ответом на вопросы
Разделить конфигурацию на маленькие файлы? нет
Устранение ошибок
Для устранения ошибки T=remote_smtp_smarthost defer (-53): retry time not reached for any host выполняются команды
# su
# cd /var/spool/exim4/db/
# /etc/init.d/exim4 stop
# rm *
# /etc/init.d/exim4 start
# cat /var/log/exim4/mainlog - проверка устранения ошибок