[exim] callout & defer_ok

Kezdőlap
Üzenet törlése
Válasz az üzenetre
Szerző: Phil Chambers
Dátum:  
Címzett: exim-users
Tárgy: [exim] callout & defer_ok
Exim 4.50:

Is there a way of doing the opposite of defer_ok? I could use a "defer_fail"
option so that I could treat defer as a hard failure. I would then want to
check to see if a defer occurred.

I am using callout for sender verification in my RCPT ACLs. At the moment I do
callout without defer_ok. If it fails I record the failure in acl_m2 and then
check my whitelist to see if it should go through. Subsequently (in a filter)
I check acl_m2 to inhibit vacation messages where the verification failed. (I
see no point in generating vacation messages when I know they will fail and
clog up my queue with frozen bounces.)

The ACL is along the lines of:
 deny ! verify = sender/callout=<timers>
       set acl_m2 = no
       condition = <no if sender is in my whitelist>
       ! dnslists = dsn.rfc-ignorant.org/$sender_address_domain


However, when the callout defers it does not get to check the whitelist to let
it through, it causes a temporary rejection to the RCPT and the sender just
keeps trying, with the same failure each time.

The only way I can see round this is to do callout twice, first with defer_ok
and then without. That is not good because the result is not cached when
defer_ok is present (as I understand it from the documentation).

What I would like is:
 deny   verify = sender/callout=<timers>,defer_fail
        set acl_m2 = no
        condition = <no if sender in my whitelist>
        ! dnslists = dsn.rfc-ignorant.org/$sender_address_domain
        condition = <no if it deferred>


defer condition = <yes if it deferred>

Any suggestions?

Phil.
---------------------------------------
Phil Chambers (postmaster@???)
University of Exeter