URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 95787
[ Назад ]

Исходное сообщение
"Exim проблема с пересылаемыми письмами"

Отправлено ikarus , 19-Сен-14 14:54 
exim 4.8
Есть такое правило:

deny   hosts           =!+relay_from_hosts
       message         = access denied
       log_message     = "empty TO or CC"
       condition       = ${if match { ${lc:$rheader_To:} or ${lc:$rheader_CC:}}{$acl_c_lp}{no}{yes}}

так вот оно срабатывает в случае если приходит пересылаемое письмо, т.е. пользователь где то на стороннем ресурсе настроил авто пересылку входящей туда почты на местный адрес, а здесь такие письма отсеиваются по этому правилу.
отключил правило, написал, письмо прошло, смотрю в тело, вижу что поле 'TO' присутствует


Содержание

Сообщения в этом обсуждении
"Exim проблема с пересылаемыми письмами"
Отправлено ikarus , 19-Сен-14 15:11 

update:
заметил что если изменить кондишн на вот такой вариант:

condition = ${if match { ${lc:$rheader_To:} or ${lc:$rheader_CC:}}{}{no}{yes}}

то все отрабатывает верно, сейчас пытаюсь вспомнить для чего я туда вставил $acl_c_lp, эта переменная определяется в самом начале секции acl_check_rcpt:
warn set acl_c_lp = $local_part@$domain



"Exim проблема с пересылаемыми письмами"
Отправлено Moomintroll , 20-Сен-14 22:39 
> condition = ${if match { ${lc:$rheader_To:} or ${lc:$rheader_CC:}}{$acl_c_lp}{no}{yes}}

http://www.exim.org/exim-html-current/doc/html/spec_html/ch-...

or {{<cond1>}{<cond2>}...}

Т.е. должно быть:

condition = ${if or{ {match{${lc:$rheader_To:}{$acl_c_lp}}} {match{${lc:$rheader_CC:}{$acl_c_lp}}} }  {no}{yes}}

P.S. В скобках мог и запутаться…


"Exim проблема с пересылаемыми письмами"
Отправлено ikarus , 22-Сен-14 12:11 
>> condition = ${if match { ${lc:$rheader_To:} or ${lc:$rheader_CC:}}{$acl_c_lp}{no}{yes}}
> http://www.exim.org/exim-html-current/doc/html/spec_html/ch-...
>  or {{<cond1>}{<cond2>}...}
> Т.е. должно быть:
> condition = ${if or{ {match{${lc:$rheader_To:}{$acl_c_lp}}} {match{${lc:$rheader_CC:}{$acl_c_lp}}}
> }  {no}{yes}}
> P.S. В скобках мог и запутаться…

temporarily rejected after DATA: failed to expand ACL string "${if or {{match{${lc:$rheader_To:}{$acl_c_lp}}}{match{${lc:$rheader_CC:}{$acl_c_lp}}}}{no}{yes}}": missing 2nd string in {} after "match" inside "or{...}" condition

p.s. в скобках все верно