Hi all,
The Exim documentation says:
"If any condition on a warn statement cannot be completed (that is, there
is some sort of defer), the log line specified by log_message is not
written After a defer, no further conditions or modifiers in the warn
statement are processed. The incident is logged, and the ACL continues to
be processed, from the next statement onwards."
<
http://www.exim.org/exim-html-current/doc/html/spec_html/ch40.html#SECID200>
It's very useful to have at least one way to execute a condition that
might defer, without deferring the message. For example, I used it to
implement our backup MX:
<
http://blog.aptivate.org/2009/01/28/backup-mail-exchangers/>
However it doesn't seem to work in this case:
# check WHOIS for domains registered by Communicado Ltd
warn set acl_m_whois = ${run {/usr/bin/whois $sender_address_domain}}
defer
condition = ${if match {$acl_m_whois} {Company number: 3709008}}
message = Local blacklist of Communicado Limited's domains
(by the way, these guys are spewing spam at a rate of knots, this is a
very effective check when it works)
2012-01-26 11:13:11 H=out3-smtp.messagingengine.com [66.111.4.27]
F=<rod.......@fastmail.fm> temporarily rejected RCPT
<tom.......@aptivate.org>:
failed to expand ACL string "${run {/usr/bin/whois
$sender_address_domain}}": command timed out
So why is it tempfailing the message? And is there any other way to avoid
a tempfail on a condition that results in a defer?
Cheers, Chris.
--
_____ __ _
\ __/ / ,__(_)_ | Chris Wilson <0000 at qwirx.com> - Cambs UK |
/ (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Ruby/Perl/SQL Developer |
\ _/_/_/_//_/___/ | Stop nuclear war http://www.nuclearrisk.org |