Эта глава дает быстрое введение в установку Exim и краткий обзор его функциональных возможностей. Хотя Exim в значительной степени совместим с sendmail, его файлы конфигурации полностью другие.
Основной файл конфигурации обычно назван /etc/exim.conf или /etc/exim/config в большинстве дистрибутивов Linux, или /usr/lib/exim/config в старых версиях. Вы можете выяснить, где искать файл конфигурации командой:
$ exim -bP configure_file |
Вам, вероятно, придется редактировать файл конфигурации, чтобы внести в него значения, специфические для Вашего сайта. В наиболее общих конфигурациях изменить надо очень мало, a рабочую конфигурацию редко придется изменять.
По умолчанию Exim обрабатывает и доставляет всю входящую почту немедленно. Если Вы имеете значительный трафик, Вы можете настроить Exim, чтобы собирал сообщения в очередь и обрабатывал их только в определенные интервалы.
Когда почта ходит внутри TCP/IP-сети, Exim часто выполняется в режиме daemon: при загрузке системы он вызывается из /etc/init.d/exim и помещает себя в фоновый режим, где ждет входящие TCP-подключения на порте SMTP (обычно порт 25). Это полезно, когда Вы ожидаете большой трафик, потому что Exim не должен запускаться для каждого входящего подключения. Альтернативно, inetd мог бы контролировать порт SMTP и порождать Exim всякий раз, когда имеется подключение на этом порте. Эта конфигурация могла бы быть полезна, когда Вы ограничены в памяти и имеете небольшой трафик почты.
Exim имеет сложный набор параметров командной строки, многие из которых соответствуют таким же параметрам sendmail. Вместо поиска нужных параметров можно выполнять многие общие действия, вызывая соответствующие команды, например, rmail или rsmtp. Они являются символическими связями с Exim. Когда Вы выполняете одну из команд, Exim проверяет имя, которое Вы используете, чтобы вызвать его, и устанавливает соответствующие параметры самостоятельно.
Имеются две связи с Exim, которые Вы должны иметь при любых обстоятельствах: /usr/bin/rmail и /usr/sbin/sendmail. Когда Вы составляете и посылаете сообщение почты пользовательским агентом, подобным elm, оно направляется по каналу к sendmail или rmail для доставки. Именно поэтому /usr/sbin/sendmail и /usr/bin/rmail должны указывать на Exim. Список получателей сообщения будет передан Exim в командной строке. То же самое случается с почтой, приходящей через UUCP. Вы можете устанавливать требуемые имена пути, чтобы указать на Exim, печатая следующее в ответ на приглашение оболочки:
$ ln -s /usr/sbin/exim /usr/bin/rmail $ ln -s /usr/sbin/exim /usr/sbin/sendmail |
Если Вы хотите детально изучить настройку Exim, Вы должны ознакомиться с полной спецификацией Exim. Если она не входит в Ваш дистрибутив Linux, ее можно получить на сайте Exim по адресу http://www.exim.org.
Для запуска Exim, сначала надо решить, хотите ли Вы, чтобы он обрабатывал входящие SMTP-сообщения, работая как отдельный daemon, или поставить inetd управлять SMTP-портом и вызывать Exim только когда SMTP-подключение будет запрошено пользователем. Обычно Вы предпочтете вариант daemon на почтовом сервере, поскольку это загружает машину гораздо меньше, чем порождение через inetd. А при небольшом трафике лучше именно запуск через inetd.
Любой режим работы Вы выбираете для каждого компьютера индивидуально. Вы должны удостовериться, что имеете следующую запись в файле /etc/services:
smtp 25/tcp # Simple Mail Transfer Protocol |
Это определяет номер порта TCP для протокола SMTP. Он определен как 25 в "Assigned Numbers" RFC (RFC-1700).
При запуске в режиме демона Exim переходит в фоновый режим и ждет соединений через SMTP-порт. Когда подключение происходит, он разветвляется, и порожденный процесс проводит сеанс связи SMTP с таким же процессом на удаленной машине. Exim daemon обычно вызывается из rc скрипта при загрузке командой:
/usr/sbin/exim -bd -q15m |
Параметр –bd включает режим daemon, а –q15m заставляет обрабатывать любые сообщения, накопленные в очереди сообщений, каждые 15 минут.
Если нужно использовать inetd, впишите в файл /etc/inetd.conf такую строку:
smtp stream tcp nowait root /usr/sbin/exim in.exim -bs |
Помните, что после изменений этого файла нужно сообщить inetd, чтобы он перечитал inetd.conf. Для этого после внесения изменений пошлите ему сигнал HUP.
Режимы daemon и inetd взаимоисключающие. Если Вы запускаете Exim в режиме daemon, удостоверьтесь, что в inetd.conf закомментированы все строки для протокола smtp. Аналогично, при запуске Exim через inetd проверьте, чтобы в скриптах rc не было команды на загрузку Exim как daemon.
Вы можете проверять, что Exim правильно установлен для получения входящих SMTP-сообщений, соединяясь программой telnet с SMTP-портом на Вашей машине. При нормальной работе системы Вы увидите примерно следующее:
$ telnet localhost smtp Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 richard.vbrew.com ESMTP Exim 3.13 #1 Sun, 30 Jan 2000 16:23:55 +0600 quit 221 richard.brew.com closing connection Connection closed by foreign host. |
Если этот тест не выдаст приглашение SMTP (строка, начинающаяся с кода 220), проверьте правильно ли запущен Exim. Если все в порядке, смотрите протоколы Exim (описаны ниже) в случае, если имеется ошибка в файле конфигурации Exim.
Назад | Глобальное оглавление | Вперед |
Советы и секреты | Если почта не работает |