Чтобы получать почту SMTP по сети, запустите sendmail в качестве демона в процессе загрузки системы. Демон sendmail прослушивает порт TCP с номером 25 и обрабатывает входящую почту.

В большинстве случаев код, реализующий запуск sendmail, уже существует в одном из загрузочных сценариев. Если это не так, добавьте его. Следующая строка запускает sendmail в качестве демона:

# /usr/lib/sendmail -bd -q15m

В этой командной строке мы используем два ключа. Ключ -q указывает sendmail, как часто следует обрабатывать очередь почтовых сообщений. В данном случае очередь обрабатывается раз в 15 минут (-q15m), что является разумным значением для частой обработки очереди. Не стоит слишком занижать это значение. Слишком частая обработка очереди может привести к проблемам, если очередь станет слишком большой из-за сложностей с доставкой - скажем, из-за недоступности сети. Для средней рабочей станции разумным вариантом является обработка очереди раз в час (-q1h) или раз в полчаса (-q30т).

Второй параметр относится непосредственно к приему почты SMTP. Ключ -bd предписывает sendmail работать в качестве демона и принимать входящую почту через порт TCP с номером 25. Используйте этот параметр, если ваша система должна принимать входящую почту TCP/IP.

Вот такая простая командная строка. Большинство системных загрузочных сценариев не столь просты. Они, в общем случае, не ограничиваются запуском. В системе Solaris 8 для запуска sendmail используется сценарий /etc/ init.d/sendmail. Прежде всего, этот сценарий Solaris проверяет наличие каталога почтовой очереди. Если каталог не существует, sendmail создает его. В сценарии Solaris 8 параметры командной строки устанавливаются при помощи переменных. В переменной MODE хранится ключ -bd, а в переменной QUEUEINTERVAL - интервал обработки очереди. По умолчанию в сценарии Solaris 8 QUEUEINTERVAL имеет значение 15т; чтобы изменить интервал обработки очереди, измените значение QUEUEINTERVAL. Не изменяйте значение переменной MODE, если нет необходимости запретить прием входящей почты.


Чтобы sendmail работала в качестве демона и принимала входящую почту, эта переменная должна иметь значение -bd. Чтобы добавить другие ключи в командную строку sendmail, выполняемую сценарием Solaris 8, поместите эти ключи в значение переменной OPTIONS.

Сценарий Red Hat /etc/rc.d/init.d/sendmail еще сложнее, чем его версия для Solaris. Он принимает аргументы start, stop, restart, condrestart и status, что позволяет эффективно использовать сценарий для управления процессом демона sendmail. Аргументы start и stop пояснений не требуют. Аргумент restart приводит к останову работающего процесса sendmail и запуску нового процесса. Аргумент condrestart схож по действию с restart, с той разницей, что действия выполняются только в случае, если существует работающий процесс sendmail. Если демон sendmail не запущен на момент выполнеиия сценария с аргументом condrestart, сценарий просто завершает работу. Аргумент status выводит состояние демона, а именно - численный иденти- фикатор процесса, если демон запущен, либо сообщение о том, что sendmail остановлен, если он не запущен.

Когда сценарий Red Hat вызывается с аргументом start, то начинает работу с повторной сборки всех файлов баз данных sendmail. Затем запускается де- мон sendmail с параметрами командной строки, определенными в файле /etc/sysconfig/sendmail. Подобно сценарию для Solaris, сценарий Red Hat использует переменные для определения значений параметров командной строки, но сами переменные инициализируются косвенно значениями из файла /etc/sysconfig/sendmail. Файл /etc/sysconfig/sendmail системы Red Hat по умолчанию содержит всего две строки:

$ cat /etc/sysconfig/sendmail 
DAEMON=ye s 
QUEUE=1 h

Если DAEMON имеет значение yes, sendmail запускается с ключом -bd. Ин- тервал обработки очереди определяется значением переменной QUEUE. В данном примере очередь почтовых сообщений обрабатывается каждый час (1h). Дополнительный код, присутствующий в большинстве загрузочных сценариев, полезен, однако не является строго необходимым для запуска Rendmail в качестве демона. Все что в действительности нужно - командная строка sendmail с ключом -bd.