Am 12.08.25 um 15:45 schrieb Jeremy Harris via Exim-users:
On 2025/08/12 2:25 PM, Frank Richter via Exim-users wrote:
But if recipient’s domain doesn’t exist, exim gives a temp error:
451 Temporary local problem
What did DNS actually return for that domain? Use debug.
$ exim -d+all -v -bv [email protected]
…
16:04:11 2570720 --------> checkonly router <--------
16:04:11 2570720 local_part=test domain=gmial.com
16:04:11 2570720 checking domains
16:04:11 2570720 cached no match for +local_domains
16:04:11 2570720 cached lookup data = NULL
16:04:11 2570720 gmial.com in "!+local_domains"? yes (end of list)
16:04:11 2570720 calling checkonly router
16:04:11 2570720 checkonly router called for [email protected]
16:04:11 2570720 domain = gmial.com
16:04:11 2570720 gmial.com in "*"? yes (matched "*")
16:04:11 2570720 DNS lookup of gmial.com (MX) gave TRY_AGAIN
16:04:11 2570720 gmial.com in dns_again_means_nonexist? no (option unset)
16:04:11 2570720 returning DNS_AGAIN
16:04:11 2570720 writing neg-cache entry for gmial.com-MX-8000c3, ttl -1
16:04:11 2570720 checkonly router: defer for [email protected]
16:04:11 2570720 message: host lookup did not complete
[email protected] cannot be resolved at this time: host lookup did not complete
% dig gmial.com
; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> gmial.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 30623
…
Ah, SERVFAIL.
Would dns_again_means_nonexist or help?
Yes:
16:21:54 2573003 DNS lookup of gmial.com (MX) gave TRY_AGAIN
16:21:54 2573003 gmial.com in dns_again_means_nonexist? yes (matched "*")
16:21:54 2573003 gmial.com is in dns_again_means_nonexist: returning DNS_NOMATCH
…
16:21:54 2573003 checkonly router declined for [email protected]
…
[email protected] failed to verify: Unrouteable address
Or better mx_fail_domains in dnslookup route? No, this doesn’t.
I realise this doesn't answer your question, but I fear that
the "fix" you are thinking of would introduce a problem in
the other direction.
What you're asking for is probably possible, but would require
some rather low-level detail work in your config, essentially
replacing what that "checkonly" router does. Start with looking
into the "dnslookup" lookup type, think about replacing your
existing "verify=recipient", and worry about all the possible return
value that this lookup might give.
Sounds complicated …
I’d like to deny an email instead of sending it to the smarthost, which
generates a DSN failure.
Thanks
Frank
--
Frank Richter, Chemnitz University of Technology, Germany
--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## [email protected]
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/