【问题标题】:DNS Verifying email records via PythonDNS 通过 Python 验证电子邮件记录
【发布时间】:2020-06-07 06:32:06
【问题描述】:

首先......请原谅我在 DNS 协议方面完全是个菜鸟。

我正在尝试使用 python 来验证电子邮件是否存在(使用this code 作为基础)

import re
import smtplib
import dns.resolver

# Address used for SMTP MAIL FROM command  
fromAddress = 'corn@bt.com'

# Simple Regex for syntax checking
regex = '^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$'

# Email address to verify
inputAddress = input('Please enter the emailAddress to verify:')
addressToVerify = str(inputAddress)

# Syntax check
match = re.match(regex, addressToVerify)
if match == None:
    print('Bad Syntax')
    raise ValueError('Bad Syntax')

# Get domain for DNS lookup
splitAddress = addressToVerify.split('@')
domain = str(splitAddress[1])
print('Domain:', domain)

# MX record lookup
records = dns.resolver.query(domain, 'MX')
mxRecord = records[0].exchange
mxRecord = str(mxRecord)


# SMTP lib setup (use debug level for full output)
server = smtplib.SMTP()
server.set_debuglevel(0)

# SMTP Conversation
server.connect(mxRecord)
server.helo(server.local_hostname) ### server.local_hostname(Get local server hostname)
server.mail(fromAddress)
code, message = server.rcpt(str(addressToVerify))
server.quit()

#print(code)
#print(message)

# Assume SMTP response 250 is success
if code == 250:
    print('Success')
else:
    print('Bad')

这在 Digitalocean VPS 服务器上运行良好

但此代码在本地机器上不起作用(超时错误)。所以我认为这是一个端口问题,但是我的服务器上没有打开端口 25。

所以我获取了 server.local_hostname 的字符串值(顺便说一下,这不是我的域。而且我还没有配置 STMP 。而且正如我之前提到的,我没有打开端口 25)并在我的本地机器上运行它,我仍然得到超时错误。

1) 关于 DNS 协议,我一定不明白。有什么想法吗? 2) 如果 SMTP 服务器之间发生了一些 DNS 协议,是否可以使用代理服务器来验证电子邮件?

【问题讨论】:

    标签: python python-3.x email dns smtp


    【解决方案1】:

    无法验证电子邮件地址是否存在。

    许多服务器会接受发往任何地址的邮件并从那里丢弃。许多地址是其他地址的别名。当然,没有什么神奇的 DNS 记录可以告诉您某个特定的电子邮件地址是否存在。这只是将垃圾邮件从那些抓取 DNS 记录的人那里邀请给垃圾邮件的人。

    【讨论】:

      猜你喜欢
      • 2015-05-16
      • 2012-01-10
      • 2018-08-15
      • 2023-03-26
      • 2022-10-20
      • 2016-06-01
      • 2011-03-21
      • 2010-11-09
      • 2012-08-23
      相关资源
      最近更新 更多