[exim] minor issue multiple conditions in acl at data stage

Top Page
Delete this message
Reply to this message
Author: Rejo Zenger
Date:  
To: exim-users
Subject: [exim] minor issue multiple conditions in acl at data stage
Hi,

I am still missing some feeling for writing correct conditions... I am
currently using the following as part of BATV setup:

 |  acl_check_data:
 | 
 |  [...]
 | 
 |   deny message    = Bounces to this domain must be signed using BATV.
 |     senders       = :
 |     !condition    = ${prvscheck {$recipients}{BATV_KEY}{true}}


However, the server hosts a couple of virtual domains that do not use
BATV for one reason or another. So, I want to accept all bounces for
these domains. Now, if I understond correctly from the documentation, I
cannot use the "domains" option in an ACL at the DATA stage of an SMTP
session, right?

So, to work around that I tried:

 | acl_check_rcpt:
 | 
 | [...]
 | 
 |   accept
 |     domains             = +domains_batv
 |     set acl_m1          = batv
 | 
 | [...]
 | 
 | acl_check_data:
 | 
 | [...]
 | 
 |   deny 
 |     message             = Bounces to this domain must be signed using BATV.
 |     senders             = :
 |     !condition          = if { and { \
 |                 {eq{ $acl_m1} {batv}} \
 |                 { ${prvscheck {$recipients}{BATV_KEY}{true}}}\
 |                } }


However, this gives:

[...] F=<> temporarily rejected after DATA: invalid "condition" value "if { and { {eq{ batv} {batv}}{ } } }"

I don't understand what is wrong here, the condition or the setup
itself. Anyone that can shed a light here?



--
Rejo Zenger . <rejo@???> . 0x75FC50F3 . <https://rejo.zenger.nl>
GPG encrypted e-mail prefered.