Hello everyone,
I have this ACL:
begin acl
acl_svwl:
accept sender_domains = +nosv_domains_whitelist
accept recipients = lsearch;/etc/exim4/nosv_recipients
require verify = sender/callout=120s,defer_ok
accept
...
require verify = sender
acl = acl_svwl
Now this problem is a bit complicated: when the incoming sender has a
non-existent local part [1], the mail is accepted if a recipient is
listed in /etc/exim4/nosv_recipients file.
But, if domain is non-existent [2] as well, it is rejected, because in
that case require says that condition test failed immediately.
The question is: how do I make Exim accept the mail in this ACL when
sender domain doesn't exist?
Traces:
[1]
exim -d -bhc 192.168.1.219
mail from: fasdfsdfasdklfasdfasjfajklfljk@???
SMTP<< mail from: fasdfsdfasdklfasdfasjfajklfljk@???
SMTP>> 250 OK
250 OK
rcpt to: mark@???
SMTP<< rcpt to: mark@???
using ACL "acl_check_rcpt"
...
processing "require"
check verify = sender
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Verifying fasdfsdfasdklfasdfasjfajklfljk@???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering fasdfsdfasdklfasdfasjfajklfljk@???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
routing fasdfsdfasdklfasdfasjfajklfljk@???
--------> dnslookup router <--------
local_part=fasdfsdfasdklfasdfasjfajklfljk domain=gmail.com
checking domains
....
host gsmtp183.google.com [64.233.183.27] MX=50
host gsmtp147.google.com [209.85.147.27] MX=50
----------- end verify ------------
sender fasdfsdfasdklfasdfasjfajklfljk@??? verified ok
check acl = acl_svwl
using ACL "acl_svwl"
processing "accept"
check sender_domains = +nosv_domains_whitelist
gmail.com in "lsearch:/etc/exim4/nosv_domains_whitelist"? no (end of list)
gmail.com in "+nosv_domains_whitelist"? no (end of list)
accept: condition test failed
processing "accept"
check recipients = lsearch;/etc/exim4/nosv_recipients
address match: subject=mark@???
pattern=lsearch;/etc/exim4/nosv_recipients
search_open: lsearch "/etc/exim4/nosv_recipients"
search_find: file="/etc/exim4/nosv_recipients"
key="mark@???" partial=-1 affix=NULL starflags=0
LRU list:
:/etc/exim4/nosv_recipients
:/etc/exim4/spamtraps
End
internal_search_find: file="/etc/exim4/nosv_recipients"
type=lsearch key="mark@???"
file lookup required for mark@???
in /etc/exim4/nosv_recipients
lookup yielded:
mark@??? in "lsearch;/etc/exim4/nosv_recipients"? yes (matched
"lsearch;/etc/exim4/nosv_recipients")
accept: condition test succeeded
[2]
exim -d -bhc 192.168.1.219
mail from: fasfdsfsdfasd@???
SMTP<< mail from: fasfdsfsdfasd@???
SMTP>> 250 OK
250 OK
rcpt to: mark@???
SMTP<< rcpt to: mark@???
using ACL "acl_check_rcpt"
check verify = sender
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Verifying fasfdsfsdfasd@???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering fasfdsfsdfasd@???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
routing fasfdsfsdfasd@???
--------> dnslookup router <--------
local_part=fasfdsfsdfasd domain=dfasasfdfasdfasdfasfsd.com
checking domains
dfasasfdfasdfasdfasfsd.com in "btw2.pl : btw2.eu : localhost :
localhost.localdomain"? no (end of list)
dfasasfdfasdfasdfasfsd.com in "! +local_domains"? yes (end of list)
calling dnslookup router
dnslookup router called for fasfdsfsdfasd@???
domain = dfasasfdfasdfasdfasfsd.com
DNS lookup of dfasasfdfasdfasdfasfsd.com (MX) gave HOST_NOT_FOUND
returning DNS_NOMATCH
dnslookup router declined for fasfdsfsdfasd@???
"more" is false: skipping remaining routers
no more routers
----------- end verify ------------
require: condition test failed
LOG: MAIN REJECT
H=krokus.btw2.eu (o) [192.168.1.219] sender verify fail for
<fasfdsfsdfasd@???>: Unrouteable address
SMTP>> 550-Verification failed for
<fasfdsfsdfasd@???>