dnl dnl игнорирование доставки с помощью пользовательских фильтров exim писем, предназначенных для доставки в персональный карантин dnl define(`confVIRT_MDIR_FILTERS_IGNORE_PERSONAL_QUARANTINE', `YES') dnl define(`_IGNORE_PERSONAL_QUARANTINE_', `NO') ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `dnl ifdef(`confVIRT_MDIR_FILTERS_IGNORE_PERSONAL_QUARANTINE', `ifelse(confVIRT_MDIR_FILTERS_IGNORE_PERSONAL_QUARANTINE, `YES', `dnl define(`_IGNORE_PERSONAL_QUARANTINE_', `YES') ')') dnl ifdef(`confVIRT_MDIR_FILTERS_IGNORE_PERSONAL_QUARANTINE', `ifelse(confVIRT_MDIR_FILTERS_IGNORE_PERSONAL_QUARANTINE, `YES', `')') ') ifelse_strstr(confDELIVERY_TO, `FILTERS', `dnl virtual_filters: driver = redirect ifdef(`confLOCAL_PART_SUFFIX', `ifelse(confLOCAL_PART_SUFFIX, `NO', `dnl', `dnl local_part_suffix = confLOCAL_PART_SUFFIX local_part_suffix_optional ')') dnl ifdef(`confLOCAL_PART_SUFFIX', `ifelse(confLOCAL_PART_SUFFIX, `NO', `', `')') ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `MYSQL', `dnl address_data = ${lookup mysql{\ confVIRT_MDIR_MYSQL\ }{$value}{}} # require_files = ${extract{home}{$address_data}}/.forward # condition = ${if exists{${extract{home}{$address_data}}/.forward}{yes}{no}} ifelse_strstr(_IGNORE_PERSONAL_QUARANTINE_, `YES', `dnl condition = ${if and {\ {!eq{$h_X-Quarantined}{YES}}\ {!match{$h_X-Spam-Action:}{quarantined}}\ {eq{$acl_m_quarantined}{}}\ {!match{$h_X-Spam-Report:}{already_read}}\ {!forany{${sg{$acl_m_quarantined_per_rcpt}{, }{:}}}{eq{$item}{$local_part@$domain}}}\ {\ exists{${extract{home}{\ ${lookup mysql{\ confVIRT_MDIR_MYSQL\ }{$value}{}}\ }}/.forward}\ }\ }{yes}{no}} ',` condition = ${if exists{${extract{home}{\ ${lookup mysql{\ confVIRT_MDIR_MYSQL\ }{$value}{}}\ }}/.forward}{yes}{no}} ') dnl ifelse_strstr(_IGNORE_PERSONAL_QUARANTINE_, `YES', `') file = ${extract{home}{$address_data}}/.forward ', `dnl ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `MYSQL', `')') ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `SQLITE', `dnl address_data = ${lookup sqlite{confSQLITE \ confVIRT_MDIR_SQLITE \ }{$value}{}} # require_files = ${extract{home}{$address_data}}/.forward # condition = ${if exists{${extract{home}{$address_data}}/.forward}{yes}{no}} ifelse_strstr(_IGNORE_PERSONAL_QUARANTINE_, `YES', `dnl condition = ${if and{\ {!eq{$h_X-Quarantined}{YES}}\ {!match{$h_X-Spam-Action:}{quarantined}}\ {eq{$acl_m_quarantined}{}}\ {!match{$h_X-Spam-Report:}{already_read}}\ {!forany{${sg{$acl_m_quarantined_per_rcpt}{, }{:}}}{eq{$item}{$local_part@$domain}}}\ {\ exists{${extract{home}{\ ${lookup sqlite{confSQLITE \ confVIRT_MDIR_SQLITE \ }{$value}{}}\ }}/.forward}\ }\ }{yes}{no}} ',` condition = ${if exists{${extract{home}{\ ${lookup sqlite{confSQLITE \ confVIRT_MDIR_SQLITE \ }{$value}{}}\ }}/.forward}{yes}{no}} ') dnl ifelse_strstr(_IGNORE_PERSONAL_QUARANTINE_, `YES', `') file = ${extract{home}{$address_data}}/.forward ', `dnl ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `SQLITE', `')') ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `LDAP', `dnl address_data = ${lookup ldap{\ confVIRT_MDIR_LDAP\ }{$value}fail} # condition = ${if exists{${extract{home}{$address_data}}/.forward}{yes}{no}} # condition = ${if exists{ifdef(`confVIRT_MDIR_PATH_LDAP', confVIRT_MDIR_PATH_LDAP, `${extract{maildir}{$address_data}}').forward}{yes}{no}} ifelse_strstr(_IGNORE_PERSONAL_QUARANTINE_, `YES', `dnl condition = ${if and{\ {!eq{$h_X-Quarantined}{YES}}\ {!match{$h_X-Spam-Action:}{quarantined}}\ {eq{$acl_m_quarantined}{}}\ {!match{$h_X-Spam-Report:}{already_read}}\ {!forany{${sg{$acl_m_quarantined_per_rcpt}{, }{:}}}{eq{$item}{$local_part@$domain}}}\ {exists{ifdef(`confVIRT_MDIR_PATH_LDAP', confVIRT_MDIR_PATH_LDAP, `${extract{maildir}{$address_data}}').forward}}\ }{yes}{no}} ',` condition = ${if exists{ifdef(`confVIRT_MDIR_PATH_LDAP', confVIRT_MDIR_PATH_LDAP, `${extract{maildir}{$address_data}}').forward}{yes}{no}} ') dnl ifelse_strstr(_IGNORE_PERSONAL_QUARANTINE_, `YES', `') # require_files = ifdef(`confVIRT_MDIR_PATH_LDAP', confVIRT_MDIR_PATH_LDAP, `${extract{maildir}{$address_data}}').forward file = ifdef(`confVIRT_MDIR_PATH_LDAP', confVIRT_MDIR_PATH_LDAP, `${extract{maildir}{$address_data}}').forward ', `dnl ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `LDAP', `')') # require_files = `'confVIRT_MDIR_PATH`'/.forward ifelse_strstr(_IGNORE_PERSONAL_QUARANTINE_, `YES', `dnl condition = ${if and{\ {!eq{$h_X-Quarantined}{YES}}\ {!match{$h_X-Spam-Action:}{quarantined}}\ {eq{$acl_m_quarantined}{}}\ {!match{$h_X-Spam-Report:}{already_read}}\ {!forany{${sg{$acl_m_quarantined_per_rcpt}{, }{:}}}{eq{$item}{$local_part@$domain}}}\ {exists{confVIRT_MDIR_PATH/.forward}}\ }{yes}{no}} ',`dnl condition = ${if exists{confVIRT_MDIR_PATH/.forward}{yes}{no}} ') dnl ifelse_strstr(_IGNORE_PERSONAL_QUARANTINE_, `YES', `') file = `'confVIRT_MDIR_PATH`'/.forward ')') dnl ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `LDAP', `')') ')') dnl ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `SQLITE', `')') ')') dnl ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `MYSQL', `')') user = confVIRT_MDIR_USER group = confVIRT_MDIR_GROUP file_transport = address_file pipe_transport = address_pipe reply_transport = address_reply directory_transport = delivery_to_virt_domain_by_filter # no_expn # check_ancestor allow_filter ') dnl ifelse_strstr(confDELIVERY_TO, `FILTERS', `')