в секции acl_check_data добавил правило:
warn condition = ${if match {$rh_subject:}{windows-1251}{yes}{no}}
condition = {${lookup mysql{SET NAMES windows-1251}{}}${lookup mysql{INSERT INTO `mail_header2` (`message_id`, `header`, `header2`) VALUES ( \
'${quote_mysql:$message_id}',\
'${escape:$h_subject:}',\
'${escape:$rh_subject:}'\
)}} }
logwrite = "HEAD3: $rh_subject: ||| ${rfc2047:$h_subject:} ||| $header_X-PHP-Script: ||| $header_X-PHP-Originating-Script:"Но вот не пойму, почему-то не срабатывает добавление в БД, если убрать второй condition то в консоль сыпятся множественные HEAD3.
Может кто подскажет как правильно написать этот блок?
Естественно
condition = {${lookup mysql{ INSERT INTO
не может быть condition так как он НЕ возвращает состояние
match я бы тод же подправил
Вот так должно работатьwarn condition = ${if match {$rh_subject:}{\N(?i)windows\-1251\N}}
set acl_m_insert = {${lookup mysql{SET NAMES windows-1251}{}}${lookup mysql{INSERT INTO `mail_header2` (`message_id`, `header`, `header2`) VALUES ( \
'${quote_mysql:$message_id}',\
'${escape:$h_subject:}',\
'${escape:$rh_subject:}'\
)}} }
logwrite = "HEAD3: $rh_subject: ||| ${rfc2047:$h_subject:} ||| $header_X-PHP-Script: ||| $header_X-PHP-Originating-Script:"
>[оверквотинг удален]
> '${escape:$rh_subject:}'\
>
> )}} }
>
> logwrite = "HEAD3: $rh_subject: ||| ${rfc2047:$h_subject:} |||
> $header_X-PHP-Script: ||| $header_X-PHP-Originating-Script:"
>
Да. спасибо, тут разобрался, но вот тут не понятно:'${quote_mysql:${base64d:$rh_subject:}}'
В логе:
temporarily rejected after DATA: failed to expand ACL string "{${lookup mysql{SET NAMES cp1251}{}}${lookup mysql{INSERT INTO `mail_header2` (`message_id`, `header`, `header2`) VALUES ( '${quote_mysql:$message_id}','${escape:$h_subject:}','${quote_mysql:${base64d:$rh_subject:}}')}} }": string " =?windows-1251?b?wOry6
> В логе:
> temporarily rejected after DATA: failed to expand ACL stringОшибка в синтаксисе выражения. Проверяйте внимательно, особенно скобки.