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