dnl dnl _ARG1_ - 4 или 6 или отсутствует - версия IP dnl _ARG2_ - значение для ignore_target_hosts dnl ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', ` mailertable_smtp`'_ARG1_`'_skip_quarantined: driver = accept transport = fake_transport ifdef(`confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS', `ifelse(confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS, `YES', `dnl domains = ! +local_domains ')') dnl ifdef(`confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS', `ifelse(confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS, `YES', `')') ifelse(confMAILERTABLE, `TEXT', `dnl condition = ${if match{${lc:\ LOOKUP_MAILERTABLE_TEXT\ }}{\N^(?i)\s*smtp`'_ARG1_\s*:\s*(\S.+)$\N}{ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `${if IS_NOT_QUARANTINED{no}{yes}}',`yes')}{no}} ') dnl ifelse(confMAILERTABLE, `TEXT', `') ifelse(confMAILERTABLE, `DBM', `dnl condition = ${if match{${lc:\ LOOKUP_MAILERTABLE_DBM\ }}{\N^(?i)\s*smtp`'_ARG1_\s*:\s*(\S.+)$\N}{ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `${if IS_NOT_QUARANTINED{no}{yes}}',`yes')}{no}} ') dnl ifelse(confMAILERTABLE, `DBM', `') ifelse(confMAILERTABLE, `MYSQL', `dnl condition = ${lookup mysql{confMAILERTABLE_MYSQL}\ {${if eq{${extract{transport}{${lc:$value}}}}{smtp`'_ARG1_}{ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `${if IS_NOT_QUARANTINED{no}{yes}}',`yes')}{no}}}{no}} ') dnl ifelse(confMAILERTABLE, `MYSQL', `') ifelse(confMAILERTABLE, `SQLITE', `dnl condition = ${lookup sqlite{confSQLITE confMAILERTABLE_SQLITE}\ {${if eq{${extract{transport}{${lc:$value}}}}{smtp`'_ARG1_}{ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `${if IS_NOT_QUARANTINED{no}{yes}}',`yes')}{no}}}{no}} ') dnl ifelse(confMAILERTABLE, `SQLITE', `') ifdef(`_ARG2_', `ifelse(_ARG2_, `', `', `dnl ignore_target_hosts = _ARG2_ ')') dnl ifdef(`_ARG2_', `ifelse(_ARG2_, `', `', `')') no_verify ')dnl ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `') # маршрутизация почты по smtp по ручному маршруту mailertable_smtp`'_ARG1_: driver = manualroute transport = remote_smtp ifdef(`confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS', `ifelse(confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS, `YES', `dnl domains = ! +local_domains ')') dnl ifdef(`confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS', `ifelse(confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS, `YES', `')') ifelse(confMAILERTABLE, `TEXT', `dnl condition = ${if match{${lc:\ LOOKUP_MAILERTABLE_TEXT\ }}{\N^(?i)\s*smtp`'_ARG1_\s*:\s*(\S.+)$\N}{ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `${if IS_NOT_QUARANTINED{yes}{no}}',`yes')}{no}} address_data = ${if match{${lc:\ LOOKUP_MAILERTABLE_TEXT\ }}{\N^(?i)\s*smtp`'_ARG1_\s*:\s*(\S.+)$\N}{$1}{}} ') dnl ifelse(confMAILERTABLE, `TEXT', `') ifelse(confMAILERTABLE, `DBM', `dnl condition = ${if match{${lc:\ LOOKUP_MAILERTABLE_DBM\ }}{\N^(?i)\s*smtp`'_ARG1_\s*:\s*(\S.+)$\N}{ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `${if IS_NOT_QUARANTINED{yes}{no}}',`yes')}{no}} address_data = ${if match{${lc:\ LOOKUP_MAILERTABLE_DBM\ }}{\N^(?i)\s*smtp`'_ARG1_\s*:\s*(\S.+)$\N}{$1}{}} ') dnl ifelse(confMAILERTABLE, `DBM', `') ifelse(confMAILERTABLE, `MYSQL', `dnl condition = ${lookup mysql{confMAILERTABLE_MYSQL}\ {${if eq{${extract{transport}{${lc:$value}}}}{smtp`'_ARG1_}{ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `${if IS_NOT_QUARANTINED{yes}{no}}',`yes')}{no}}}{no}} address_data = ${lookup mysql{confMAILERTABLE_MYSQL}\ {${extract{route}{${lc:$value}}}}{}} ') dnl ifelse(confMAILERTABLE, `MYSQL', `') ifelse(confMAILERTABLE, `SQLITE', `dnl condition = ${lookup sqlite{confSQLITE confMAILERTABLE_SQLITE}\ {${if eq{${extract{transport}{${lc:$value}}}}{smtp`'_ARG1_}{ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `${if IS_NOT_QUARANTINED{yes}{no}}',`yes')}{no}}}{no}} address_data = ${lookup sqlite{confSQLITE confMAILERTABLE_SQLITE}\ {${extract{route}{${lc:$value}}}}{}} ') dnl ifelse(confMAILERTABLE, `SQLITE', `') route_data = ${sg{${sg\ {$address_data}\ {\N(?i)([^:\s]+?)\/bestMX\N}\ {\N\ ${extract{2}{ }{\ ${reduce{<\n ${lookup dnsdb{mx=$1}}}{999999 localhost}{${if <{${extract{1}{ }{$item}}}{${extract{1}{ }{$value}}}{$item}{$value}}}}\ }}\N\ }\ }}{\N\s\N}{}} ifdef(`_ARG2_', `ifelse(_ARG2_, `', `', `dnl ignore_target_hosts = _ARG2_ ')') dnl ifdef(`_ARG2_', `ifelse(_ARG2_, `', `', `')') no_verify self = send # использование таблицы ручных маршрутов для выбора транспорта и маршрута для проверки существования адресов получателей mailertable_smtp`'_ARG1_`'_callout: driver = manualroute transport = remote_smtp ifdef(`confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS', `ifelse(confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS, `YES', `dnl domains = ! +local_domains ')') dnl ifdef(`confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS', `ifelse(confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS, `YES', `')') ifelse(confMAILERTABLE, `TEXT', `dnl condition = ${if match{${lc:\ LOOKUP_CALLOUTTABLE_TEXT\ }}{\N^(?i)\s*smtp`'_ARG1_\s*:\s*(\S.+)$\N}{yes}{no}} address_data = ${if match{${lc:\ LOOKUP_CALLOUTTABLE_TEXT\ }}{\N^(?i)\s*smtp`'_ARG1_\s*:\s*(\S.+)$\N}{$1}{}} ') dnl ifelse(confMAILERTABLE, `TEXT', `') ifelse(confMAILERTABLE, `DBM', `dnl condition = ${if match{${lc:\ LOOKUP_CALLOUTTABLE_DBM\ }}{\N^(?i)\s*smtp`'_ARG1_\s*:\s*(\S.+)$\N}{yes}{no}} address_data = ${if match{${lc:\ LOOKUP_CALLOUTTABLE_DBM\ }}{\N^(?i)\s*smtp`'_ARG1_\s*:\s*(\S.+)$\N}{$1}{}} ') dnl ifelse(confMAILERTABLE, `DBM', `') ifelse(confMAILERTABLE, `MYSQL', `dnl condition = ${if match\ {${extract{transport}{${lookup mysql{confMAILERTABLE_CALLOUTTABLE_MYSQL}}}}}\ {\N^(?i)\s*smtp`'_ARG1_\s*$\N}\ {yes}{no}} address_data = ${lookup mysql{confMAILERTABLE_CALLOUTTABLE_MYSQL}\ {${extract{route}{${lc:$value}}}}{}} ') dnl ifelse(confMAILERTABLE, `MYSQL', `') ifelse(confMAILERTABLE, `SQLITE', `dnl condition = ${if match\ {${extract{transport}{${lookup sqlite{confSQLITE confMAILERTABLE_CALLOUTTABLE_SQLITE}}}}}\ {\N^(?i)\s*smtp`'_ARG1_\s*$\N}\ {yes}{no}} address_data = ${lookup sqlite{confSQLITE confMAILERTABLE_CALLOUTTABLE_SQLITE}\ {${extract{route}{${lc:$value}}}}{}} ') dnl ifelse(confMAILERTABLE, `SQLITE', `') route_data = ${sg{${sg\ {$address_data}\ {\N(?i)([^:\s]+?)\/bestMX\N}\ {\N\ ${extract{2}{ }{\ ${reduce{<\n ${lookup dnsdb{mx=$1}}}{999999 localhost}{${if <{${extract{1}{ }{$item}}}{${extract{1}{ }{$value}}}{$item}{$value}}}}\ }}\N\ }\ }}{\N\s\N}{}} ifdef(`_ARG2_', `ifelse(_ARG2_, `', `', `dnl ignore_target_hosts = _ARG2_ ')') dnl ifdef(`_ARG2_', `ifelse(_ARG2_, `', `', `')') verify_only