- •Почтовые агенты в различных ос
- •Структура email-сообщения
- •Заголовки почтового сообщения
- •Примеры почтовых сообщений с заголовками
- •Основные команды протокола smtp
- •Vrfy email_адрес
- •Пример smtp-сеанса
- •Основные команды протокола pop-3
- •Программа sendmail: ее функции и составные части
- •Псевдонимы, списки рассылки и форвардинг
- •Конфигурация sendmail (файл sendmail.Cf)
- •Правила
- •Правила выбора агентов доставки
- •Порядок применения наборов правил
- •Специальные наборы правил (check_...)
- •Обсуждение
- •Задание 6.
Программа sendmail: ее функции и составные части
Программа sendmail - это транспортный почтовый агент (MTA) плюс агент доставки SMTP. Sendmail фактически является стандартным MTA для Unix и поставляется вместе с операционной системой. Сайт разработчиков программы находится по адресу http://www.sendmail.org/. Программа распространяется бесплатно, в исходных текстах. Полное описание программы, ее конфигурации и работы с ней см. в книге Bryan Costales, Eric Allman "Sendmail". Ниже описываются наиболее ключевые и необходимые для работы моменты.
Sendmail состоит из программы /usr/lib/sendmail, конфигурационного файла /etc/mail/sendmail.cf, файла псевдонимов /etc/mail/aliases и других вспомогательных файлов, а также документов справочника man. Программа использует каталоги /etc/mail для хранения конфигурационного и вспомогательных файлов и /var/spool/mqueue для очереди сообщений. Путь к каталогу очереди сообщений может варьироваться от системы к системе.
Программа /usr/lib/sendmail выполняет различные действия в зависимости от того, с какими ключами или под каким именем она запущена. Например
#/usr/lib/sendmail -bd
Запуск в режиме демона (производится при старте системы) для приема SMTP-соединений; подробнее см. ниже.
#/usr/lib/sendmail -bt
Запуск в тестовом режиме для проверки конфигурации; подробнее см. ниже.
#/usr/bin/newaliases
Разбор файла /etc/mail/aliases и обновление базы данных aliases. (/usr/bin/newaliases - ссылка на /usr/lib/sendmail.) См. также следующий пункт.
#/usr/bin/mailq
Вывод содержимого очереди сообщений. (/usr/bin/mailq - ссылка на /usr/lib/sendmail.)
%/usr/lib/sendmail sidorov@vvsu.ru
Вызов MTA для обработки и отправки сообщения Сидорову. Сообщение со всеми заголовками передается на стандартный ввод. Обычно такой вызов производится пользовательским агентом.
Основные задачи администратора при работе с sendmail: определение псевдонимов и списков рассылки (следующий пункт) и внесение изменений и дополнений в файл sendmail.cf (см.). Прочие задачи описаны в п. Управление работой sendmail и тестирование конфигурации.
Псевдонимы, списки рассылки и форвардинг
Файл /etc/aliases (->/etc/mail/aliases) позволяет определить альтернативные имена для получателей почты, связать стандартные имена типа MAILER-DAEMON с реальными получателями и создать списки рассылки.
Файл состоит из текстовых строк формата:
псевдоним: получатель[,получатель, ... ]
например:
#обязательные записи
MAILER-DAEMON: postmaster
postmaster: root
#альтернативные имена для Петрова
ivan: petrov
ivan.petrov: petrov
petrov: ipetrov@aol.com
#список рассылки
friends: petrov, sidorov@vvsu.ru, ivanov
#администратор списка friends (его имя: "owner-имя_списка")
owner-friends: petrov
#вставить список рассылки из другого файла
staff: :include:/home/manager/mail/staff
#добавить сообщение в конец файла (обязательно полный путь к файлу)
filer: /var/tmp/add_to_this_file
# получателем сообщения является программа, которая запускается
# и текст сообщения подается ей на стандартный ввод
myprog: |"/usr/local/bin/do_something"
Чтобы записи в измененном файле /etc/aliases были прочитаны программой sendmail, необходимо выполнить команду newaliases.
Файл /etc/aliases является системным и редактируется администратором. С помощью директивы ":include:" удобно поручать формирование списка рассылки другому (обычному) пользователю. Адреса в файле, подключаемом директивой ":include:", располагаются под одному на строку; строки, начинающиеся с символа #, игнорируются.
Каждый пользователь может создать в своем домашнем каталоге файл .forward со списком почтовых адресов, по одному на строку. В этом случае вся почта, приходящая этому пользователю, будет направляться по указанным адресам, ВМЕСТО доставки пользователю. Чтобы поступающая почта оставалась также и в локальном почтовом ящике, его адрес должен быть тоже включен в .forward.
Файл .forward обрабатывается после файла /etc/aliases. Файл .forward может содержать также содержать директивы перенаправления почты в программу или добавления к файлу аналогично тому, как это делается в /etc/aliases.