无法检查域(如yahoo和outlooks)的mx记录

2024-09-28 19:20:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个python脚本来检查csv文件中邮件ID的真实性,这个csv文件包含整个列表。 我对每一个邮件ID都做了这三个检查

<强>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()

我遇到的问题是,它没有在一些域上运行,比如YahooOutlook,我的列表中的一些随机域是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的东西初学者。请指导我如何解决这个问题。你知道吗


Tags: 文件csvinpycomserverline邮件