Handle 'No MX record' exception

This commit is contained in:
László Károlyi 2019-03-03 22:49:39 +01:00
parent 2c832c42f7
commit f457620ea4
Signed by: karolyi
GPG Key ID: 2DCAF25E55735BFE
3 changed files with 9 additions and 4 deletions

View File

@ -1,2 +1,5 @@
0.1.4:
- Handle 'No MX record' exception
0.1.3:
- Added ambigious (4xx) response code handling

View File

@ -26,7 +26,7 @@ class PostBuildPyCommand(build_py):
setup(
name='py3-validate-email',
version='0.1.3',
version='0.1.4',
packages=find_packages(exclude=['tests']),
install_requires=['dnspython'],
author='László Károlyi',

View File

@ -3,7 +3,7 @@ from smtplib import SMTP, SMTPServerDisconnected
from socket import gethostname
from typing import Optional
import dns.resolver as dns
from dns.resolver import NXDOMAIN, NoAnswer, query
DOMAIN_REGEX = re_compile(r'(?<=@)\[?([^\[\]]+)')
@ -19,9 +19,11 @@ def _get_domain_from_email_address(email_address):
def _get_mx_records(domain: str) -> list:
try:
records = dns.query(domain, 'MX')
except dns.NXDOMAIN:
records = query(domain, 'MX')
except NXDOMAIN:
raise ValueError(f'Domain {domain} does not seem to exist')
except NoAnswer:
raise ValueError(f'Domain {domain} does not have an MX record')
return [str(x.exchange) for x in records]