Новые книги

Книга посвящена вопросам становления и профессионального развития копирайтера. В доступной и легкой форме автор на собственных примерах показывает многие ошибки начинающих авторов, рассказывает о профессиональных секретах копирайтинга, делится своими наблюдениями о профессии. Книга будет интересна как уже практикующим авторам, так и тем, кто только решил связать свою жизнь с написанием текстов. Рекомендуется самому широкому кругу читателей.
Компания-легенда, история которой началась в тесной квартире учителя английского языка, а спустя всего 10 лет после основания достигла показателей продаж, значительно превышающих результаты eBay и Amazon, вместе взятых. Это рассказ, как никому не известному Джеку Ма и его 17 друзьям удалось сформировать отсутствующую интернет-индустрию в огромной – больше миллиарда жителей – стране. О людях, которые верили в себя и свое дело даже в самые тяжелые моменты – и сумели изменить мир.

Getting EximUp and Running



Глава 19. Получение и запуск Exim

Эта глава дает быстрое введение в установку 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

Для запуска 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.