Re: [exim] Condition in router

Top Page
Delete this message
Reply to this message
Author: Dave Evans
Date:  
To: exim-users
Subject: Re: [exim] Condition in router
On Mon, Mar 03, 2008 at 07:55:23PM +0100, Pawel Rutkowski wrote:
> if he found user@domain in file /etc/exim/direct/$domain and all these:
> ...
> expression is true then the email is accepted in that router.


OK, well in that case your main choices are:

- embed the "if" inside the "lookup", a bit like this:

  condition = ${lookup{$local_part@$domain}lsearch{/etc/exim/direct/$domain}\
    {${if and{ ... add conditions here ... }} \
    {no} \
  }


(i.e. if the lookup succeeds, try the "if", otherwise the answer is "no")

- or, add the lookup as another condition:

>      {!def:h_X-Spam-Flag:} \
>      {!eq {$received_protocol}{spam-scanned}} \
>      {!eq {$received_protocol}{local}} \
>      {exists{/etc/exim/spam/$domain/user_prefs}} \

       {!eq {} {${lookup ...}}}


(i.e. an extra "and" condition which verifies that the lookup expands to
non-empty)

- or, add the lookup as part of the "true" expansion of the "if":

  condition = ${if and { ... } \
      {${lookup ...}  {yes}{no}}\
  }


(i.e. try all the "if", and if those tests are true then try the lookup)

I suspect the second option will be the most readable.

--
Dave Evans
http://djce.org.uk/
http://djce.org.uk/pgpkey