> The spam check works no problem, BUT, I can't figure out how to make the ACL
> work properly - it works flawlessly if the domain I want to spam check is in
> local_domains as well (presumably because the verification is done by
> local_domains, then routed correctly via local_spamcheck). I've tried every
> combination I can think of in the ACL :-
How domains are routed in Exim 4 depends solely on the routers. This
means that +local_domains is only a list of domains, nothing more,
nothing less. There is no longer a separation between local and
remote domains as in Exim 3. If you want routers to act on specific
domains, put these in the domains precondition.
> accept domains = +local_spamcheck
> endpass
> message = unknown user
> verify = recipient
> Doesn't work (reports highest MX priority is local host, rather than accepting
> the domain as local)
You have probably the default dnslookup router in your configuration,
which looks more or less like this:
dnslookup:
driver = dnslookup
domains = ! +local_domains
[...]
This router will be run for every domain that is not in
+local_domains (and that includes your +local_spamcheck!). Trying to
remotely route a local domain fails if the DNS lookup discovers that
Exim would have to send the mail to itself, of course. Try to add the
+local_spamcheck to the dnslookup router:
domains = ! +local_domains : ! +local_spamcheck
This might help, but your routing setup will also require careful
setting of no_more and verify_only/no_verify options, in order to work
as you expect it.
Andy