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: 0.1.3:
- Added ambigious (4xx) response code handling - Added ambigious (4xx) response code handling

View File

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

View File

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