|
Bog BOS: sendmail из комплекта Solaris
|
Последнее изменение файла: 2007.02.08
Скопировано с www.bog.pp.ru: 2024.11.23
Bog BOS: sendmail из комплекта Solaris
Администрирование почты (sendmail в Solaris
не есть обычный sendmail)
/opt/SUNWaadm/ps/MAILADMIN - документация
В качестве MUA используются:
- /usr/bin/mail
- /usr/bin/mailx
- $OPENWINHOME/bin/mailtool
- /usr/dt/bin/dtmail
В качестве MTA используется /usr/lib/sendmail, который
- принимает сообщения от MUA
- вычисляет адрес назначения
- выбирает агента пересылки (deliver agent)
- принимает почту от других агентов пересылки
Агенты пересылки:
-
SMTP - использует 25 порт на
приемной машине
-
UUCP - использует uux
-
local - использует /usr/lib/mail.local
(кладет в
/var/mail/имя-пользователя, имя
пользователя д.б.
настоящим, параметры
-f sender recepient,
переписывает все со
стандартного входа в /var/mail/recepient и
добавляет пустую строку, запись в файл
блокируется замком .lock, права
доступа 660,
владельцем является recepient,
группа mail,
вычисляет Content-Length: и
извещает biff-сервер (/usr/sbin/in.comsat))
Mailers: реализация агента в местном sendmail
-
ether - встроенная в sendmail
реализация SMTP внутри домена
-
ddn - встроенная в sendmail
реализация SMTP наружу (CR LF в конце строки)
-
smartuucp -
встроенный в sendmail
посылатель,
использующий uux, но
формирующий заголовки в формате SMTP
-
uucp - встроенный в sendmail
посылатель,
использующий uux и
стандартные uucp-шные
заголовки (через
восклицательный знак)
-
local - почему-то указан /bin/mail, а вовсе не /usr/lib/mail.local
-
prog - указан /bin/sh
-
error - вернуть сообщение об ошибке
Синонимы:
-
местонахождение: /etc/mail/aliases
mail host - выделенный компьютер, на котором sendmail
сконфигурирован так, что он умеет маршрутизировать почту,
остальные компьютеры всю не локальную почту посылают на mailhost
(определяется именем mailhost в /etc/inet/hosts).
mail server - компьютер, который ведет /var/mail
директорию для локальный и удаленных пользователей. Также
обрабатывает всю почту, посылаемую клиентами.
mail client - система, которая не имеет локальной директории /var/mail, но
получает почту через mail server.
mail gateway - система, которая обрабатывает почту между
различными подсетями (в т.ч. использующими различные почтовые протоколы).
Утилиты:
-
/usr/bin/mailq -
посмотреть очередь (в /usr/local/bin
несовместимый mailq!), в
реальности линк на /usr/lib/sendmail -bp
-
/usr/bin/mailstats -
посмотреть
статистику,
накопленную в /etc/mail/sendmail.st
-
/usr/bin/mconnect -
тестирование SMTP сервера (аналог telnet host 25)
-
/usr/bin/newaliases -
преобразовать список
синонимов из
текстового вида в формат БД, в
реальности линк на /usr/lib/sendmail
-
/usr/bin/aliasadm -
редактирование таблицы
синонимов ═для NIS+ (можно и вручную)
-
/usr/bin/rmail - линк на /usr/bin/mail
(используется когда надо только послать почту)
-
/usr/bin/vacation -
управление
автоматическим ответом на время отпуска
-
/usr/sbin/in.comsat - демон
оповещения
пользователей о приходе почты
Файлы:
Процесс обработки почты (в пределах одного компьютера):
-
mailx
отправителя
составляет письмо
-
sendmail
маршрутизирует
-
mail.local кладет в ящик
-
mailx получателя читает письмо
Формат почтовой очереди (/var/spool/mqueue)
-
файлы имеют имена xfAA99999, где AA99999 -
идентификатор файла, а x - тип файла
-
d - тело письма
-
q - управляющий файл очереди. Каждая строка
начинается с буквы:
-
$ - значения некоторых макро (в
частности, $r и $s)
-
B- тип тела (7BIT или 8BITMIME)
-
C- управляющий адрес в формате localuser:aliasname
(насколько я понял
определяет права процесса
отправки)
-
D - имя файла с телом письма
-
E - на кого слать сообщение об ошибке
-
F - флаги (r - ответ на письмо, w -
предупреждение о задержке)
-
H - строка заголовка (порядок важен, формат как в
файле
конфигурации - это не просто копия
заголовка -
присутствует какая-то
управляющая
информация)
-
L - информация,
позволяющая вычислить Content-Length (у меня
почему-то 0,0,0)
-
M -
информационная строка (любой текст,
предполагается, что содержит статус
сообщения)
-
P - приоритет (чем меньше, тем
приоритетнее), начальный
приоритет зависит от класса и размера письма,
постепенно
увеличивается
-
R - имя получателя (по одному в каждой
строке, синонимы
обрабатываются при каждом
обращении)
-
S - отправитель
-
T - время создания задания
(используется для
вычисления времени удаления из очереди)
-
t - временный файл типа q в
процессе
преобразования
-
x - журнал
Обработать почтовую очередь (если это не
делается
автоматически каждый час): /usr/lib/sendmail -v -q
Обработать почтовую очередь только для одного
получателя: /usr/lib/sendmail -qRимя
Как безопасно подменить очередь:
-
/etc/init.d/sendmail stop
-
cd /var/spool
-
mv mqueue mqueue.old; mkdir mqueue
-
chown daemon.daemon mqueue (в
реальности, однако, root.mail - кому
верить?)
-
chmod 755 mqueue
-
/etc/init.d/sendmail start
Как обработать после этого старую
очередь: /usr/lib/sendmail -oQ/var/spool/mqueue.old -q -v
Отладка правил:
-
/usr/lib/sendmail -bt
-
в ответ на
приглашение введите: 3,0
адрес-получателя
Файл
конфигурации (/etc/mail/sendmail.cf)
считывается при запуске sendmail и
определяет:
-
значения
макропеременных
(используются в
дальнейшем)
-
формат строк заголовка письма
-
определения мейлеров (агентов
пересылки)
-
правила
преобразования имен
═(упорядоченный список шаблонов)
-
параметры (опции)
Наборы правил:
-
3 - применяется первым,
преобразует к виду: local-address@host-domain
-
0 - определяет
назначение в виде тройки: mailer, host, user
-
1 -
переделывает адрес
отправителя
-
S -
специфический набор для каждого мейлера по
переделыванию адреса
отправителя (для каждого мейлера свое имя, S -
стандартный набор)
-
2 -
переделывает адрес
получателя
-
R -
специфический набор для каждого мейлера по
переделыванию адреса
получателя (для каждого мейлера свое имя, R-
стандартный набор)
-
4 - последний шаг по
переделыванию адресов (из
внутренней формы во внешнюю)
|
Bog BOS: sendmail из комплекта Solaris
|
Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru