Sendmail является монолитной программой. Единственный двоичный файл – /usr/sbin/mailwrapper – отвечает за все функции, но вручную его обычно не запускают. Все же программы, которыми мы обычно пользуемся, являются не более чем простыми символьными ссылками на этот «бинарник»
Если говорить точнее, то собственно работа выполняется файлом /usr/libexec/sendmail/sendmail, а mailwrapper, как следует из его названия, является «обёрткой» к этому файлу. Система, как правило, пользуется ссылкой sendmail, остальные же запускаются администратором для решения конкретных задач.
Почтовые ящики:
/var/spool/mail
Очередь на отправку:
/var/spool/queue
Лог:
/var/log/maillog
Основной файл конфигурации:
/etc/mail/sendmail.cf
Установить пакет sendmail-cf
Файлы с шаблонами макросов:
/usr/share/sendmail-cf
Создать из своего макроса файл конфигурации:
m4 /usr/share/sendmail-cf/my.mc > /etc/mail/sendmail.cf
Конфигурирование Sendmail
Создать файл /usr/share/sendmail-cf/my.mc
(или скопировать в него один из шаблонов)
Начало комментария - dnl
Конец строки - dnl (необязательно, чтобы избежать пробелов)
Кавычки - `'
Конфигурационные параметры:
define(`параметр',`значение')dnl
Указать имена доменов, для которых принимается почта
в my.mc:
FEATURE(use_cw_file)dnl
в /etc/mail/local-host-names
example.com
Разрешение ретрансляции (из домена example.com)
в my.mc:
FEATURE(`access.db',`hash -T /etc/mail/access.b')dnl
в /etc/mail/access
Connect:127.0.0.1 RELAY
Connect:192.168.0 RELAY
/etc/mail/# makemap hash access < access
Виртульный хостинг
Для приема почты для другого домена можно использовать таблицу виртуальных пользователей
в my.mc:
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
в /etc/mail/virtusertable
user@hosted_domain.com user_hd
Почта для обслуживаемого домена hosted_domain.com (должен быть прописан в MX и в файле access) передается в ящик user_hd
или
@hosted_domain.com %1@smtp.hosted_domain.com
Вся почта для обслуживаемого домена hosted_domain.com (должен быть прописан в MX и в файле access) передается на SMTP сервер smtp.hosted_domain.com
/etc/mail/# makemap hash access < access
Чтобы всю исходящую почту Sendmail пересылал через другой сервер:
define(`SMARTHOST',`smtp:smtp.example.com')dnl
Опции безопасности
define(`confPRIVACY_FLAGS',`.,.,.,.,')dnl
База доступа
FEATURE(blacklist_recipients)dnl
Примеры:
@mail.ru 550 мы не принимаем почту с майла ру
user@mail.ru OK
@spamer.com DISCARD
sex@ REJECT
Черные списки
FEATURE('dnsbl`,`blackhole.mail-abuse.org',`Rejected: see www.mail-abuse.org')dnl
Статьи на тему:
Как работает Sendmail? Полезные подробности
Как работает Sendmail? Полезные подробности Часть 2: Вопросы Конфигурации
Как работает Sendmail? Полезные подробности. Часть 3: Вопросы администрирования
Sendmail: "и это все о нем..."
Тематический каталог ссылок на публикации по ОС Linux
Руководство FreeBSD - Электронная почта
Типовые задачки по sendmail. Часть первая.
Типовые задачки по sendmail. Часть вторая.