Невозможно проверить записи mx для таких доменов, как Yahoo, Outlook и т. Д. - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь написать скрипт на python, который проверял бы подлинность почтового идентификатора из файла csv, у которого есть весь список.Я делаю эти три проверки для каждого идентификатора электронной почты

1.Проверка регулярных выражений

regex = re.compile(
        r'^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$')

2.Проверка домена

splitAddress = email.split('@')
domain = str(splitAddress[1])
records = dns.resolver.query(domain, 'MX')
mxRecord = records[0].exchange
mxRecord = str(mxRecord)

3.Проверка диалога SMTP

server = smtplib.SMTP()
server.set_debuglevel(0)
server.connect(mxRecord)
server.helo(server.local_hostname) 
server.mail('abc@bt.com')
code, message = server.rcpt(str(email))
server.quit()

У меня возникли проблемы с тем, что он не запускается на некоторых доменах, таких как Yahoo , Outlook и случайный домен из моих списков pmrelocations.com

Ошибка отслеживания, которую я получаю:

Traceback (most recent call last):
  File "mxrecord.py", line 41, in <module>
    server.helo(server.local_hostname)
  File "C:\Python27\lib\smtplib.py", line 404, in helo
    (code, msg) = self.getreply()
  File "C:\Python27\lib\smtplib.py", line 369, in getreply
    raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed

Вы можете проверить полный код здесь: https://github.com/Rwarlock/mxrecordchecker/blob/master/mxrecord.py

Я понимаю, что этот код нуждается в оптимизации, но в настоящее время я сосредоточен на том, чтобы заставить его работать и оптимизирую его, как только он будет полностью закодирован со всеми выполняемыми проверками в реальной жизни.

Я не получаю информацию о том, как решить проблему.Я очень начинающий со всеми вещами SMTP и DNS.Пожалуйста, руководство, как я могу решить эту проблему.

...