我正在尝试编写一个python脚本,该脚本将从具有整个列表的csv文件中检查邮件ID的真实性。 我正在对每个电子邮件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()
我遇到的问题是,它不能在某些域上运行,例如 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的初学者。请指导我如何解决此问题。