[exim] struggling with conditions

Top Page
Delete this message
Reply to this message
Author: Dominique
Date:  
To: exim-users
Subject: [exim] struggling with conditions

Hi there,


I am working on a greylist implementation where greylist is defined per
recipient. The greylist settings are stored in a MySQL database on a per
domain basis. I realise this is a bit expensive, but it keeps the system
fairly dynamic.

This is what I currently have in my defer ACL (rcpt):

        warn set acl_m_PROTECTION = ${lookup mysql{SELECT setting FROM
settings WHERE domain_name='$domain'}}


        condition = {{if eq{acl_m_PROTECTION}{1} { \
        ALL_GREY = true} \
        } {elseif eq{acl_m_PROTECTION}{2} { \
        SKIP_GREY = true } \
        } {elseif eq{acl_m_PROTECTION}{3} { \
        PARTIAL_GREY = true } \
        }


        .ifdef SKIP_GREY
          !local_parts = +skip_grey
        .elifdef PARTIAL_GREY
          local_parts = +partial_grey
        .elifdef ALL_GREY
          local_parts = *
        .endif
        acl = greylist_acl




08:58:51 20672 processing "defer"
08:58:51 20672 check !senders = : postmaster
08:58:51 20672 address match: subject=sender@??? pattern=
08:58:51 20672 d242.net in ""? no (end of list)
08:58:51 20672 address match: subject=sender@??? pattern=postmaster
08:58:51 20672 sender.net in "postmaster"? no (end of list)
08:58:51 20672 sender@??? in ": postmaster"? no (end of list)
08:58:51 20672 defer: condition test succeeded
08:58:51 20672 SMTP>> 451 Temporary local problem - please try later


Can I use conditions before the actual acl? I'm not quite sure what's wrong.

the local_parts information is never read, it seems.


Any suggestions are more than welcome.