dnl dnl Проверка комбинации адреса отправителя и получателя dnl dnl комбинации адресов отправителей и получателей указываются в файле CONFDIR/access-compat dnl в виде: dnl sender_mailbox@sender.domain<@>rcpt_mailbox@rcpt.domain : action : message dnl dnl в качестве action могут быть использованы: dnl warn - выдача предупреждения в лог файл и в заголовки письма dnl deny или reject - отказ в приеме сообщения dnl drop или discard - удаление сообщения dnl defer - возврат временной ошибки отправителю dnl dnl сообщение message может отсутствовать dnl dnl в адресе отправителя в левой части допустимо использование масок: dnl *@sender.domain<@>rcpt_mailbox@rcpt.domain : deny : Access denied dnl dnl допустимо использование регулярных выражений: dnl \N^<@>(hostmaster|ftpmaster)@rcpt\.domain$\N : deny : Null sender rejected. Thist is incoming address only. dnl dnl если доставка производится в unix mailbox'ы, то возможно указание dnl только почтового ящика в качестве адреса получателя, если домен dnl получателя входит в список локальных доменов dnl dnl примеры: dnl <@>hostmaster@domain.tld : deny : Null sender rejected. Thist is incoming address only. dnl a@b.c<@>hostmaster@domain.tld : warn dnl *@b.c<@>hostmaster@domain.tld : drop dnl *<@>hostmaster@domain.tld : warn dnl <@>*@domain.tld : deny dnl a@b.c<@>*@domain.tld : warn : Access denied dnl *@b.c<@>*@domain.tld : warn dnl *<@>*@domain.tld : warn dnl \N^<@>.+@domain.tld\N : deny dnl \N^a@b.c<@>.+@domain.tld\N : warn dnl \N^.+@b.c<@>.+@domain.tld\N : defer dnl \N^.+<@>.+@domain.tld\N : warn dnl *@sender.domain<@>user1 : reject dnl # Проверка комбинации адреса отправителя и получателя warn set acl_m0 = ${lookup{\ $sender_address<@>$local_part@$domain\ }wildlsearch{CONFDIR/access-compat}{$value}{\ ${lookup{\ $sender_address_local_part@<@>$local_part@$domain\ }wildlsearch{CONFDIR/access-compat}{$value}{}}\ }} ifelse_strstr(confDELIVERY_TO, `MBOX', ` warn condition = ${if eq{$acl_m0}{}{yes}{no}} domains = +local_domains set acl_m0 = ${lookup{\ $sender_address<@>$local_part\ }wildlsearch{CONFDIR/access-compat}{$value}{\ ${lookup{\ $sender_address_local_part@<@>$local_part\ }wildlsearch{CONFDIR/access-compat}{$value}{}}\ }} ') warn condition = ${if eq{$acl_m0}{}{no}{yes}} condition = ${if match{$acl_m0}{\N(?i)^\s*(warn).*$\N}{yes}{no}} log_message = Sender/recipient address pair warn message = X-Warn-Compat: \ ${if match{$acl_m1}{\N(?i)^\s*(warn)\s*:\s*(.+)$\N}\ {$2}{Sender/recipient address pair warn}} deny condition = ${if match{$acl_m0}{\N(?i)^\s*(deny|reject).*$\N}{yes}{no}} log_message = Sender/recipient address pair blacklisted message = ${if match{$acl_m0}{\N(?i)^\s*(deny|reject)\s*:\s*(.+)$\N}\ {$2}{Sender/recipient address pair rejected}} defer condition = ${if match{$acl_m0}{\N(?i)^\s*(defer).*$\N}{yes}{no}} log_message = Sender/recipient address pair defered message = ${if match{$acl_m0}{\N(?i)^\s*(defer)\s*:\s*(.+)$\N}\ {$2}{Sender/recipient address pair defered}} drop condition = ${if match{$acl_m0}{\N(?i)^\s*(drop|discard).*$\N}{yes}{no}} log_message = Sender/recipient address pair discarded message = ${if match{$acl_m0}{\N(?i)^\s*(drop|discard)\s*:\s*(.+)$\N}\ {$2}{}}