我正在尝试通过首先解析其 DNS,然后使用下面的代码检查电子邮件是否有效来验证电子邮件地址是否存在:
email = test@cisco.com
domain = email.split("@")[-1]
records = dns.resolver.query(domain, 'MX')
mxRecord = records[0].exchange
mxRecord = str(mxRecord)
server.connect(mxRecord)
server.helo(host)
server.mail('myemail@gmail.com')
code, message = server.rcpt(str(email))
server.quit()
if code == 250:
print('valid email', message)
else:
print('invalid email', message)
这个方法有时会起作用,但当我发送多个请求时,我会收到如下消息:
"5.7.1服务不可用,客户端主机[122.166.xxx.xxx]被列入Spamhaus黑名单。要申请从此列表中删除,请访问http://www.spamhaus.org/lookup.lasso (AS160312312)[BL2NAM02FT12312.eop-nam02.prod.protection.outlook.com]"
我理解他们试图阻止我的IP地址,因为它认为这是垃圾邮件。
以下是我的问题:
- 有没有正确的方法进行此类型的电子邮件验证,而不被标记为垃圾邮件?是否被标记为垃圾邮件是因为我在我的系统上运行代码并仅提供了一个虚拟值作为电子邮件,比如
server.mail('myemail@gmail.com')
- 是否可能使用某些代理来完成此操作?我的用例需要验证数百个电子邮件地址。我看到一些商业API可用于电子邮件验证,但目前对我来说不可行。