Hello!

On Thu, 01 Oct 2020 at 19:15:35 (+0700), Victor Sudakov wrote:

> > Вот более детальный пример. Но, опять же, я не проверял в действии + могут 
> > быть ошибки синтаксиса.

> >           condition     = ${if or {\
> >                                 { eq 
> > {${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}}} {yes} }\
> >                                 { eq 
> > {${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}}} {yes} }\
> >                         } {yes}}

> Работает вроде. Интересно, а чем же тогда мой: 

>  accept condition =  ${if or {\
>                       
> {eq{${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}}{yes}}} \
>                       
> {eq{${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}}{yes}}} \
>                       } {yes}}                           

> не подошёл, вроде такой же по смыслу, через eq{...}. "{yes}" не там, что ли.

Нет там. Я поэтому для ридабилти разделяю обычно пробелами части.
Первый "yes" - это то, что вернёт в случае удачи lookup и что будет
являться первой частью для eq, а второй "yes" - это то, с чем будет
сравниваться первый.
Т.е. в, так сказать, полной нотации это должно выглядеть так:
  condition     = ${if or {\
                        { eq 
{${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}{no}}} {yes} }\
                        { eq 
{${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}{no}}} {yes} }\
                } {yes}{no}}

"{no}" в lookup'ах можно убрать, т.к. в данном случае не важно, что
вернёт lookup, если совпадение не найдёт (абы только не "yes").

"{yes}{no}" в конце всего кондишена тоже можно убрать, т.к. в случае
удачи if вернёт строку "true", а в случае неудачи вернёт пустую строку,
что для "condition" равноценно false.
Собственно как можно убрать только "{no}", тогда соответственно в случае
удачи вернёт "yes", а в случае неудачи - пустую строку, от чего
функциональность не изменится =)
В примере Лены yes/no|true/false заменено на 1/0 через bool, но в итоге
для exim это всё равнозначные удача/неудача.

-- 
George L. Yermulnik
[YZ-RIPE]

_______________________________________________
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users

Ответить