我想使用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
之后,你能做的最好的事情就是发送一封确认电子邮件,等待回复。