Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
net_tech / Лабораторнаработа 5 (E-mail).doc
Скачиваний:
27
Добавлен:
10.12.2013
Размер:
269.82 Кб
Скачать

Порядок применения наборов правил

Существуют базовые наборы правил c преодпределенными номерами, которые sendmail вызывает в определенной последовательности для обработки сообщения. Они, в свою очередь, могут вызывать какие-либо вспомогательные наборы.

Сначала отдельно для адреса отправителя и отдельно для адреса получателя вызывается набор правил 3, который производит фокусировку. Фокусировка залючается в том, что любой почтовый адрес приводится к виду "пользователь < @ домен(хост) >". Для почтовых адресов Интернет эта процедру достаточно тривиальна: "m2@vvsu.ru" приводится к виду "m2 < @ vvsu . ru . >" (7 токенов) - обратите внимание, что доменное имя - полностью определенное, заканчивается на точку.

Фокусировка очень удобна при последующем разборе адресов с помощью правил.

После прохождения набора 3 сфокусированный адрес получателя подается одновременно на наборы 0 и 2. Набор 0 производит выбор агента доставки. Набор 2 предназначен для преобразования адреса получателя; в последних версиях это набор ничего не делает или отсутствует. После этого адрес получателя проходит через тот набор правил, который указан в параметре "R=" определения агента доставки (который уже выбран с помощью набора 0). Если в параметре "R=" указано два набора - один для конверта, другой для заголовка, - то адрес получателя подается одновременно в каждый из указанных наборов и на выходе получается два адреса получателя: один для конверта, другой для заголовка.

Обработка адреса отправителя производится в следующей последовательности: после набора 3 сфокусированный адрес отправителя подается в набор 1, который, аналогично набору 2, в последних версиях ничего не делает или отсутствует. После этого адрес отправителя проходит через тот набор правил, который указан в параметре "S=" определения уже выбранного агента доставки. Если в параметре "S=" указано два набора, то, аналогично случаю с адресом получателя, на выходе получается отдельный вариант адреса отправителя для конверта и отдельный - для заголовка.

Преобразования всех адресов завершаются набором 4, производящим дефокусировку (т.е. отменяющим изменения, сделанные набором 3).

После этого сообщение с надлежащим образом преобразованными адресами и сфомированными заголовками поступает для отправки к программе агента доставки.

Специальные наборы правил (check_...)

Специальные наборы правил check_mail, check_rcpt, check_relay и check_compat предназначены для проверки легитимности адресов сообщений, поступающих в sendmail, особенно через SMTP. Эти наборы формируют локальную политику приема и обработки сообщений. Каждый набор вызывается в определенный момент обработки сообщения. Если набор отсутствует или возвратил что угодно кроме агента доставки error, считается, что принято положительное решение. Иначе sendmail отказывает в обработке сообщения по причине, указанной в правиле, выбравшем агента error (пример правила см. выше).

Набор правил check_mail вызывается непосредственно после ввода подсоединившимся по SMTP агентом команды "MAIL FROM". В качестве рабочего пространства в набор подается аргумент команды "MAIL FROM" (т.е. адрес отправителя из конверта входящего письма). Этот набор правил решает, принимать ли вообще почту от данного отправителя.

Пример набора check_mail, который отказывает в приеме сообщений из почтового домена "spamming.org":

Scheck_mail

R$* $: $>3 $1 фокусировка

R$* <@ $+. > $* $1 <@ $2> $3 удаление завершающей точки

R$* <@ $+ > $* $: $2 выделение доменной части адреса

R$* . $+ . $+ $: $2 . $3 выделение двух последних частей доменного имени

Rspamming.org $#error $@ 5.7.1 $: "cannot accept mail from spamming.org"

Набор правил check_rcpt вызывается непосредственно после ввода подсоединившимся по SMTP агентом команды "RCPT TO". В качестве рабочего пространства в набор подается аргумент команды "RCPT TO" (т.е. адрес получателя из конверта входящего письма). Пример этого набора см. в литературе. Этот набор правил решает, отправлять ли вообще почту данному получателю.

Набор правил check_relay вызывается непосредственно перед началом SMTP-сеанса с подсоединяющимся агентом. В качестве рабочего пространства в набор подаются доменное имя и IP-адрес подсоединяющегося агента, разделенные символами "$|":

maria.vvsu.ru $| 212.16.195.98

Пример этого набора см. в литературе. Этот набор правил решает, открывать ли вообще SMTP-сеанс для данного агента.

Набор правил check_compat вызывается непосредственно перед передачей сообщения агенту доставки (все адреса уже преобразованы и дефокусированы; произведено раскрытие псевдонимов из /etc/mail/aliases и .forward). В качестве рабочего пространства в набор подаются адреса отправителя и получателя, разделенные символами "$|":

m2@vvsu.ru $| god@heavens.com

Пример этого набора см. в литературе. Этот набор правил решает, разрешена ли доставка сообщения, основываясь не на одном адресе, а на паре адресов отправитель-получатель. Набор вызывается не только при выборе агента SMTP, но и при выборе любого другого агента доставки.