python:验证电子邮件是否存在的正确方法

2024-05-05 01:23:19 发布

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

我正在尝试通过首先解析其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 Service unavailable, Client host [122.166.xxx.xxx] blocked using Spamhaus. To request removal from this list see http://www.spamhaus.org/lookup.lasso (AS160312312) [BL2NAM02FT12312.eop-nam02.prod.protection.outlook.com]'"

我知道他们试图阻止我的ip地址,因为它认为它的垃圾邮件。

以下是我的问题:

  • 有没有一个正确的方法来做这种类型的电子邮件验证,而不被标记为垃圾邮件?当我在我的系统上运行代码时,它是否会被标记为垃圾邮件,只是给一个类似电子邮件的虚拟值

server.mail('myemail@gmail.com')

  • 是否可以使用代理来执行此操作?我的用例需要验证100个电子邮件地址。我看到一些商业api可用于电子邮件验证,但目前对我来说不可行。

Tags: 代码comhostmessageserverdns电子邮件email