dnl dnl Проверка существования получателей в доменах, для которых мы являемся backup MX dnl dnl величина таймаута при проверке получателя dnl define(`confVERIFY_RECIPIENT_TIMEOUT', `120s')dnl dnl dnl файл с перечисленными адресами/доменами получателей, для которых при verify recipient надо использовать defer=ok dnl пример: dnl define(`confVERIFY_RECIPIENT_DEFER_OK_RCPT', `CONFDIR/verify_recipient_defer_ok_rcpt')dnl dnl список указывается в виде: dnl domain : addr1 : addr2 : addr3 dnl пример: dnl my.domain.com : user : info : admin dnl my.another.domain.com : !user : * dnl dnl файл с перечисленными доменами/адресами получателей, для которых при verify recipient надо использовать defer=ok dnl пример: dnl define(`confVERIFY_RECIPIENT_DEFER_OK_MAIL', `CONFDIR/verify_recipient_defer_ok_mail')dnl dnl список указывается в виде: dnl domain : addr1 : addr2 : addr3 dnl пример: dnl sender.domain.com : user : info : admin dnl ifelse(SECTION, `MAIN', `dnl ifdef(`confVERIFY_SENDER_RECIPIENT_OK_RCPT', `', `define(`confVERIFY_RECIPIENT_DEFER_OK_RCPT', `')')dnl ifdef(`confVERIFY_SENDER_RECIPIENT_OK_MAIL', `', `define(`confVERIFY_RECIPIENT_DEFER_OK_MAIL', `')')dnl ') dnl ifelse(SECTION, `MAIN', `') dnl ifelse(SECTION, `ACL_CHECK_RCPT_TOP', `dnl deny condition = ${if eq{$acl_m0}{accept}{yes}{no}} condition = ${if eq{$acl_m_skip_verify_recipient}{yes}{no}{yes}} domains = +relay_to_domains ! recipients = @@wildlsearch;CONFDIR/skip_verify_recipient ! verify = recipient/callout=use_sender,confVERIFY_RECIPIENT_TIMEOUT,defer_ok condition = ${if eq{$recipient_verify_failure}{recipient}{yes}{no}} message = Unrouteable address ($acl_verify_message) ') dnl ifelse(SECTION, `ACL_CHECK_RCPT_TOP', `') ifelse(SECTION, `ACL_CHECK_RCPT', `dnl # Проверка существования получателей в доменах, для которых мы являемся backup MX # Исключение из проверки адресов, перечисленных в skip_verify_recipient warn set acl_m0 = domains = +relay_to_domains recipients = @@wildlsearch;CONFDIR/skip_verify_recipient set acl_m0 = skip ifelse(len(X`'confVERIFY_RECIPIENT_DEFER_OK_RCPT), `1', `dnl', `dnl warn domains = +relay_to_domains condition = ${if eq{$acl_m0}{skip}{no}{yes}} recipients = @@wildlsearch;confVERIFY_RECIPIENT_DEFER_OK_RCPT set acl_m0 = ,defer_ok ') dnl ifelse(len(X`'confVERIFY_RECIPIENT_DEFER_OK_RCPT), `1', `') ifelse(len(X`'confVERIFY_RECIPIENT_DEFER_OK_MAIL), `1', `dnl', `dnl warn domains = +relay_to_domains condition = ${if eq{$acl_m0}{skip}{no}{yes}} senders = @@wildlsearch;confVERIFY_RECIPIENT_DEFER_OK_MAIL set acl_m0 = ,defer_ok ') dnl ifelse(len(X`'confVERIFY_RECIPIENT_DEFER_OK_MAIL), `1', `') deny condition = ${if eq{$acl_m_skip_verify_recipient}{yes}{no}{yes}} domains = +relay_to_domains condition = ${if eq{$acl_m0}{skip}{no}{yes}} ! verify = recipient/callout=use_sender,confVERIFY_RECIPIENT_TIMEOUT${acl_m0} condition = ${if eq{$recipient_verify_failure}{recipient}{yes}{no}} message = Unrouteable address ($acl_verify_message) ') dnl ifelse(SECTION, `ACL_CHECK_RCPT', `') ifelse(SECTION, `ACL_CHECK_RCPT_BOTTOM', `dnl # Прием почты для получателей из доменов, для которых мы являемся backup MX accept domains = +relay_to_domains set acl_m_recipients_accepted = ${if eq{$acl_m_recipients_accepted}{}{}{$acl_m_recipients_accepted, }}$local_part@$domain endpass ') dnl ifelse(SECTION, `ACL_CHECK_RCPT_BOTTOM', `')