From 18a42658f992d626d10f19bc173f44c18c323202 Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Sun, 12 Mar 2023 16:57:11 +0100 Subject: [PATCH] =?UTF-8?q?Mail:=20Kontrola=20existence=20adres=20zohled?= =?UTF-8?q?=C5=88uje=20Null=20MX?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #326. --- mo/users.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mo/users.py b/mo/users.py index cfb40673..7c9f887e 100644 --- a/mo/users.py +++ b/mo/users.py @@ -265,7 +265,14 @@ def email_check_domain(domain: str): for record in ['MX', 'A', 'AAAA']: try: - dns.resolver.resolve(domain, record, lifetime=2, search=False) + answer = dns.resolver.resolve(domain, record, lifetime=2, search=False) + if (record == 'MX' + and len(answer.rrset) == 1 + and answer.rrset[0].preference == 0 + and str(answer.rrset[0].exchange) == '.'): + # Null MX (RFC 7505) explicitně říká, že doména nepřijímá poštu + logger.info(f'DNS: Doména <{domain}> má Null NX') + raise mo.CheckError(f'Doména {domain} nepřijímá poštu') except dns.exception.Timeout: # Kontrola je konzervativní, při timeoutu adresu raději schválíme logger.info(f'DNS: Timeout při kontrole domény <{domain}>') -- GitLab