dnl dnl _ARG1_ - 4 или 6 или отсутствует - версия IP dnl _ARG2_ - значение для ignore_target_hosts dnl _ARG3_ - дополнительные параметры 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,file=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_, `', `', `')') ifdef(`_ARG3_', `ifelse(_ARG3_, `', `', `dnl _ARG3_ ')') dnl ifdef(`_ARG3_', `ifelse(_ARG3_, `', `', `')') no_verify ')dnl ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `') # маршрутизация почты по smtp по ручному маршруту mailertable_smtp`'_ARG1_: driver = manualroute ifelse(_ARG1_, `6', `dnl # transport = remote_smtp6 transport = confREMOTE_SMTP6_TRANSPORT ',` dnl # transport = remote_smtp transport = confREMOTE_SMTP_TRANSPORT ') dnl ifelse(_ARG1_, `6', `') 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,file=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,file=confSQLITE{confMAILERTABLE_SQLITE}\ {${extract{route}{${lc:$value}}}}{}} ') dnl ifelse(confMAILERTABLE, `SQLITE', `') route_data = ${sg{${sg\ {$address_data}\ {\N(?i)([^:\s]+?)\/bestMX\N}\ {\ \N\ ${acl{acl_domain_bestMX}{$1}}\ \N\ }\ }}{\N\s\N}{}} ifdef(`_ARG2_', `ifelse(_ARG2_, `', `', `dnl ignore_target_hosts = _ARG2_ ')') dnl ifdef(`_ARG2_', `ifelse(_ARG2_, `', `', `')') ifdef(`_ARG3_', `ifelse(_ARG3_, `', `', `dnl _ARG3_ ')') dnl ifdef(`_ARG3_', `ifelse(_ARG3_, `', `', `')') no_verify self = send # использование таблицы ручных маршрутов для выбора транспорта и маршрута для проверки существования адресов получателей define(`_FILENAME_', `configure.router_mailertable_smtp`'_ARG1_`'_callout_before')dnl sinclude(confSITE_DIR`/'_FILENAME_) mailertable_smtp`'_ARG1_`'_callout: driver = manualroute ifelse(_ARG1_, `6', `dnl # transport = remote_smtp6 transport = confREMOTE_SMTP6_TRANSPORT ',` dnl # transport = remote_smtp transport = confREMOTE_SMTP_TRANSPORT ') dnl ifelse(_ARG1_, `6', `') 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,file=confSQLITE{confMAILERTABLE_CALLOUTTABLE_SQLITE}}}}}\ {\N^(?i)\s*smtp`'_ARG1_\s*$\N}\ {yes}{no}} address_data = ${lookup sqlite,file=confSQLITE{confMAILERTABLE_CALLOUTTABLE_SQLITE}\ {${extract{route}{${lc:$value}}}}{}} ') dnl ifelse(confMAILERTABLE, `SQLITE', `') route_data = ${sg{${sg\ {$address_data}\ {\N(?i)([^:\s]+?)\/bestMX\N}\ {\ \N\ ${acl{acl_domain_bestMX}{$1}}\ \N\ }\ }}{\N\s\N}{}} ifdef(`_ARG2_', `ifelse(_ARG2_, `', `', `dnl ignore_target_hosts = _ARG2_ ')') dnl ifdef(`_ARG2_', `ifelse(_ARG2_, `', `', `')') ifdef(`_ARG3_', `ifelse(_ARG3_, `', `', `dnl _ARG3_ ')') dnl ifdef(`_ARG3_', `ifelse(_ARG3_, `', `', `')') verify_only