使用Python检查电子邮件是否真实

时间:2015-12-23 03:55:17

标签: python email smtp email-validation

我想使用Python验证大量电子邮件地址。我想知道这样做的最佳方法是什么。我查看了SMTPValidate Email图书馆,但我还没有找到工作。

对于SMTP库,我无法弄清楚如何设置SMTP服务器(我尝试使用Gmail,但它没有工作),而对于验证电子邮件,它给了我&# 34;无"到我试过的任何电子邮件地址。

验证电子邮件库代码:

from validate_email import validate_email
is_valid = validate_email(EMAIL ADDRESS,verify=True)

我总是回来"没有"从上面的代码。

SMPT库代码:

import smtplib
server = smtplib.SMTP()
server.connect()

当我使用server = smtplib.SMTP('smtp.gmail.com',587)时,我得到了:

  

(252, "2.1.5 Send some mail, I'll try my best or1sm11343445igb.4 - gsmtp")

无论我在server.verify(email)发送了什么电子邮件。

编辑1:许多答案只会检查电子邮件地址的格式,而不是电子邮件地址是否真正有效!

1 个答案:

答案 0 :(得分:0)

实际上不可能100%准确地验证电子邮件地址的有效性/存在性。

使用正则表达式可靠地匹配它也很困难。看看这个问题:Using a regular expression to validate an email address

这似乎是最实用的验证方法。使用简单的正则表达式验证something@something来清除常见错误。 这可以使用以下python代码完成:

import re

valid_re = re.compile(r'^.+@.+')
# or something like re.compile(r'\S+@\S+')
def validate_email(email):
    if(valid_re.match(email)):
        # valid
    else:
        # invalid

在此之后,您可以做的最好的事情是发送确认电子邮件并等待回复。