ifelse(SECTION, `ACLS_ADDITIONAL', `dnl acl_greylist_datetime: # acl_arg1 - список условий в виде "wday1|wday2|wday3;HHMM-HHMM;score wday1|wday2|wday3;HHMM-HHMM;score" # acl_arg2 - текущее время # acl_arg3 - текущий день недели accept condition = ${if eq{$acl_arg1}{}{yes}{no}} warn set acl_m1 = ${if match{$acl_arg1}{\N^(\S+)\s*(\S.+)*$\N}{$1}{}} set acl_m0 = ${if match{$acl_arg1}{\N^(\S+)\s*(\S.+)*$\N}{$2}{}} warn condition = ${if or{\ {eq{${sg{${extract{1}{;}{$acl_m1}}}{\N^\s*0+(\d)\N}{\$1}}}{}}\ {match{$acl_arg3}{\N^(\N${extract{1}{;}{$acl_m1}}\N)\N}}\ }{yes}{no}} condition = ${if or{\ {<{$acl_arg2}{${sg{${extract{1}{-}{${extract{2}{;}{$acl_m1}}}}}{\N^\s*0+(\d)\N}{\$1}}}}\ {>{$acl_arg2}{${sg{${extract{2}{-}{${extract{2}{;}{$acl_m1}}}}}{\N^\s*0+(\d)\N}{\$1}}}}\ }{no}{yes}} set acl_m_optional_greylist = scores=${eval:${extract{scores}{$acl_m_optional_greylist}}+${extract{3}{;}{$acl_m1}}} \ log_message="${extract{log_message}{$acl_m_optional_greylist}} greylisted due to datetime;" set acl_m_spam_action = ${acl_m_spam_action}\t\ greylist scores=${extract{3}{;}{$acl_m1}}\t\ greylisted due to datetime\n set acl_m0 = warn acl = acl_greylist_datetime "$acl_m0" $acl_arg2 $acl_arg3 accept ') dnl ifelse(SECTION, `ACLS_ADDITIONAL', `') ifelse(SECTION, `ACL_CHECK_RCPT', `dnl warn set acl_m0 = ${lc:${sg{confGREYLIST_DATETIME}{\N:\N}{}}} set acl_m1 = ${sg{${sg{${substr{11}{5}{$tod_log}}}{\N:\N}{}}}{\N^\s*0+(\d)\N}{\$1}} set acl_m2 = ${sg{${lc:${substr{0}{3}{$tod_full}}}}{\N^\s*0+(\d)\N}{\$1}} acl = acl_greylist_datetime "$acl_m0" $acl_m1 $acl_m2 ') dnl ifelse(SECTION, `ACL_CHECK_RCPT', `')