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



我想使用Python验证大量电子邮件地址。我想知道最好的方法是什么。我看了SMTP和验证电子邮件库,但都没能正常工作。

对于SMTP库,我不知道如何设置SMTP服务器(我尝试过使用Gmail,但没有成功),而对于验证电子邮件,它对我尝试过的任何电子邮件地址都是"无"。

验证电子邮件库代码:

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版:许多答案只检查电子邮件地址的形式,而不检查电子邮件地址是否实际有效!

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

使用regex进行可靠匹配也是非常困难的。看看这个问题:使用正则表达式验证电子邮件地址

这似乎是进行验证的最实用的方法。使用简单的正则表达式验证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

之后,你能做的最好的事情就是发送一封确认电子邮件,等待回复。

最新更新