@@ -32,21 +32,6 @@ def validate_email_deliverability(domain, domain_i18n, timeout=None, dns_resolve
32
32
33
33
deliverability_info = {}
34
34
35
- def dns_resolver_resolve_shim (domain , record ):
36
- try :
37
- # dns.resolver.Resolver.resolve is new to dnspython 2.x.
38
- # https://dnspython.readthedocs.io/en/latest/resolver-class.html#dns.resolver.Resolver.resolve
39
- return dns_resolver .resolve (domain , record )
40
- except AttributeError :
41
- # dnspython 2.x is only available in Python 3.6 and later. For earlier versions
42
- # of Python, we maintain compatibility with dnspython 1.x which has a
43
- # dnspython.resolver.Resolver.query method instead. The only difference is that
44
- # query may treat the domain as relative and use the system's search domains,
45
- # which we prevent by adding a "." to the domain name to make it absolute.
46
- # dns.resolver.Resolver.query is deprecated in dnspython version 2.x.
47
- # https://dnspython.readthedocs.io/en/latest/resolver-class.html#dns.resolver.Resolver.query
48
- return dns_resolver .query (domain + "." , record )
49
-
50
35
try :
51
36
# We need a way to check how timeouts are handled in the tests. So we
52
37
# have a secret variable that if set makes this method always test the
@@ -56,7 +41,7 @@ def dns_resolver_resolve_shim(domain, record):
56
41
57
42
try :
58
43
# Try resolving for MX records.
59
- response = dns_resolver_resolve_shim (domain , "MX" )
44
+ response = dns_resolver . resolve (domain , "MX" )
60
45
61
46
# For reporting, put them in priority order and remove the trailing dot in the qnames.
62
47
mtas = sorted ([(r .preference , str (r .exchange ).rstrip ('.' )) for r in response ])
@@ -76,14 +61,14 @@ def dns_resolver_resolve_shim(domain, record):
76
61
77
62
# If there was no MX record, fall back to an A record, as SMTP servers do.
78
63
try :
79
- response = dns_resolver_resolve_shim (domain , "A" )
64
+ response = dns_resolver . resolve (domain , "A" )
80
65
deliverability_info ["mx" ] = [(0 , str (r )) for r in response ]
81
66
deliverability_info ["mx_fallback_type" ] = "A"
82
67
except (dns .resolver .NoNameservers , dns .resolver .NXDOMAIN , dns .resolver .NoAnswer ):
83
68
84
69
# If there was no A record, fall back to an AAAA record.
85
70
try :
86
- response = dns_resolver_resolve_shim (domain , "AAAA" )
71
+ response = dns_resolver . resolve (domain , "AAAA" )
87
72
deliverability_info ["mx" ] = [(0 , str (r )) for r in response ]
88
73
deliverability_info ["mx_fallback_type" ] = "AAAA"
89
74
except (dns .resolver .NoNameservers , dns .resolver .NXDOMAIN , dns .resolver .NoAnswer ):
@@ -98,7 +83,7 @@ def dns_resolver_resolve_shim(domain, record):
98
83
# absence of an MX record, this is probably a good sign that the
99
84
# domain is not used for email.
100
85
try :
101
- response = dns_resolver_resolve_shim (domain , "TXT" )
86
+ response = dns_resolver . resolve (domain , "TXT" )
102
87
for rec in response :
103
88
value = b"" .join (rec .strings )
104
89
if value .startswith (b"v=spf1 " ):
0 commit comments