Компиляция библиотеки SASL.
 Этот раздел посвящен сборке библиотеки Cyrus SASL 1.x, которая требуется для аутентификации пользователей при отправке писем через Sendmail. Если этого не требуется, данный раздел можно пропустить, а вместе с ним и все места в дальнейшем тексте, где присутствует слово SASL.
 Зайдя в директорию, куда был распакован архив с исходниками библиотеки необходимо выполнить команду
  ./configure --enable-plain --enable-login [остальные опции]
которая подготавливает все необходимые для компиляции файлы. Ключи --enable-plain и --enable-login включают поддержку механизмов аутентификации PLAIN и LOGIN соответственно. (Вообще говоря, механизм LOGIN является самым плохим с точки зрения безопасности, но IE понимает только его) После этого надо сказать
  make
и
  make install
для компиляции и установки библиотеки, соответственно. Причем последнее надо говорить будучи суперпользователем.
 Если всё прошло успешно, то должна была появиться директория /usr/local/lib/sasl и некоторые файлы в директории /usr/local/lib. Осталось сделать два важных шага. Первый -- создать символическую ссылку /usr/lib/sasl на директорию /usr/local/lib/sasl:
  ln -s /usr/local/lib/sasl /usr/lib/sasl
Это необходимо, потому что программы, в частности Sendmail, будут искать модули аутентификации в директории /usr/lib/sasl. В принципе, можно было устанавливать библиотеку прямо туда (см. ./configure --help).
Второй -- создать файл /usr/local/lib/sasl/Sendmail.conf со следующим содержимым:
pwcheck_method: passwd
Это означает, что при проверке пароля SASL будет напрямую читать файл паролей через семейство функций getpwent. Если такой вариант не устраивает, то можно почитать README к SASL, где описаны другие способы проверки пароля.
 На этом возня с SASL закончена.
  Компиляция Sendmail.
После распаковки дистрибутива Sendmail мы идём в директорию {sendmail_base}/devtools/Site и создаём там файл site.config.m4(если его там ещё нет, что обычно и бывает). Для включения механизма фильтров в этом файле надо написать
APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_MILTER=1')
APPENDDEF(`conf_libmilter_ENVDEF', `-D_FFR_MILTER=1')

а для использования библиотеки SASL при аутентификации (и включения самого механизма аутентификации)
APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
APPENDDEF(`confINCDIRS', `-I/usr/local/include')
APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')

После этого мы компилируем Sendmail командой
./Build
запуская её из директории {sendmail_base}. Если всё успешно, то можно устанавливать Sendmail командой
./Build install
но до этого надо убедиться, что в вашей системе наличествуют пользователь smmsp и группа smmsp(обычно им дают UID=25 и GID=25, хотя это дело вкуса). Если таких не наблюдается, то надо их создать. После инсталляции надо взглянуть на длинный листинг директории /var/spool. Там должны быть директории mqueue и clientmqueue со следующими правами доступа и владельцами:
drwxrwx--- 2 smmsp smmsp 512 1 Jan 00:00 clientmqueue
drwx------ 2 root  wheel 512 1 Jan 00:00 mqueue
Если что-то не так, то приводим в соответствие.
  Sendmail скомпилирован и установлен. Осталось создать файл конфигурации: идём в директорию {sendmail_base}/cf/cf и копируем файл generic-xxxx.mc, где xxxx -- что-то похожее на имя вашей операционной системы, в файл sendmail.mc. Лезем в этот файл и добавляем в конец следующие строчки:
для использования SASL
TRUST_AUTH_MECH(`DIGEST-MD5 PLAIN LOGIN')
define(`confAUTH_MECHANISMS', `DIGEST-MD5 PLAIN LOGIN')

Это позволяет нам использовать механизмы аутентификации DIGEST-MD5, LOGIN и PLAIN.
Для использования фильтров (в конкретном примере фильтра 'MailFilter', который использует локальный socket /var/run/.mail_filter):
INPUT_MAIL_FILTER(`MailFilter', `S=local:/var/run/.mail_filter, F=R')
Если вы хотите использовать несколько фильтров сразу, то порядок прохождения по ним письма совпадает с порядком строчек INPUT_MAIL_FILTER. Причём, если один из фильтров отсек письмо, то к следующим оно уже не поступит.
Теперь говорим
./Build sendmail.cf
и копируем получившийся файл sendmail.cf в директорию /etc/mail. В этой же директории надо создать файл local-host-names в котором надо перечислить все доменные имена данной машины для которых Sendmail будет принимать почту.
  Ну вот, теперь можно запускать Sendmail:
sendmail -bd -q30m
-bd означает, что sendmail будет работать в режиме демона, а -q30m -- что он будет разбирать почтовую очередь каждые 30 минут.
  Если вы компилировали поддержку аутентификации, то простейшая проверка её работоспособности такова:
telnet localhost 25
это мы решили поговорить с Sendmail'ом напрямую. И далее надо сказать
EHLO test
За этим последует несколько строчек, начинающихся на 250-. Если среди них есть строчка
250-AUTH PLAIN LOGIN
то всё хорошо. Если нету, то хорошо не всё.
$Id: install.html 1 2007-10-04 08:21:50Z rea $