检查电子邮件是否存在,只对gmail帐户有效,其他帐户无效

2024-09-28 19:35:33 发布

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

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

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")

此代码适用于Gmail帐户,但对于其他电子邮件ID,它会出错。如果我尝试其他电子邮件ID,请执行以下行:

^{pr2}$

给出一个错误。。。 另外,我应该如何检查其他电子邮件ID?在


Tags: idjsonmessagereturnserveris电子邮件email
2条回答

如果您只需要在google域中查看G套件中的电子邮件,您可以使用这些:

1)首先,您需要获得正确的凭据才能访问范围https://www.googleapis.com/auth/admin.directory.user.readonly的数据 https://developers.google.com/admin-sdk/directory/v1/guides/delegation#delegate_domain-wide_authority_to_your_service_account

2)其次,您可以使用使用这些凭据创建的服务对象来检查电子邮件是否存在:https://developers.google.com/admin-sdk/directory/v1/quickstart/python

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

相关问题 更多 >