我想使用Python验证大量电子邮件地址。我想知道这样做的最佳方法是什么。我查看了SMTP和Validate 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:许多答案只会检查电子邮件地址的格式,而不是电子邮件地址是否真正有效!
答案 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
在此之后,您可以做的最好的事情是发送确认电子邮件并等待回复。