检查电子邮件是否存在,仅适用于gmail帐户,其他不适用

AKH*_*HEW 0 python email-validation

我正在创建一个python函数来检查Python中是否存在给定的电子邮件ID.这是我的代码:

def email_validate(email_address):
    addressToVerify = email_address
    domain_name = addressToVerify.split('@')[1]
    try:
        records = dns.resolver.query(domain_name, 'MX')
    except Exception as e:
        print e
        a = traceback.format_exc()
        print a
        return HttpResponse(json.dumps({"success":False,"message":"Email Domain is not valid."}), content_type="application/json")

    mxRecord = records[0].exchange
    mxRecord = str(mxRecord)

    server = smtplib.SMTP()
    server.set_debuglevel(0)

    # SMTP Conversation
    server.connect(mxRecord)
    server.helo(host)
    server.mail('me@domain.com')
    try:
        code, message = server.rcpt(str(addressToVerify))
        server.quit()
    except:
        a = traceback.format_exc()

    if code == 250:
         return HttpResponse(json.dumps({"success":True,"message":"Email ID is valid."}), content_type="application/json")
    else:
         return HttpResponse(json.dumps({"success":False,"message":"Email ID is not valid."}), content_type="application/json")
Run Code Online (Sandbox Code Playgroud)

此代码适用于Gmail帐户,但它会为其他电子邮件ID提供错误.如果我尝试其他电子邮件ID,则此行:

code, message = server.rcpt(str(addressToVerify))
Run Code Online (Sandbox Code Playgroud)

给出错误...另外,我应该如何查看其他电子邮件ID?

SED*_*dji 5

RCPT命令绝不是检查电子邮件验证的好主意,大多数SMTP服务器会在多次尝试后禁止您的IP,或者忽略您的命令以保护其电子邮件免受垃圾邮件发送者的攻击.验证电子邮件存在的唯一方法是发送验证电子邮件.

  • @AKHILMATHEW让我知道你是否能够使用它; 我可以通过向垃圾邮件发送者销售这种技术来退休.或者更具建设性:你不能拥有你想要的东西,因为绝大多数电子邮件服务器因垃圾邮件而关闭了支持.我很惊讶它甚至适用于GMail,我猜他们对其他垃圾邮件预防方法非常有信心,因此启用此功能会带来净收益. (4认同)