使用 Python 检查电子邮件是不是真实 [关闭]

Posted

技术标签:

【中文标题】使用 Python 检查电子邮件是不是真实 [关闭]【英文标题】:Check if an e-mail is real using Python [closed]使用 Python 检查电子邮件是否真实 [关闭] 【发布时间】:2016-03-29 11:00:53 【问题描述】:

我想使用 Python 验证大量电子邮件地址。我想知道这样做的最佳方法是什么。我查看了 SMTP 和 Validate Email 库,但都无法正常工作。

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

【问题讨论】:

要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题不属于 Stack溢出,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。 *** 不是代码编写服务。你试过什么? @Arc676 我已经为我尝试过的两个库添加了代码。 好的。这就是我想知道的问题。 verify email address on Linux的可能重复 【参考方案1】:

几乎不可能 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

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

【讨论】:

我要验证一个电子邮件地址是否存在,而不仅仅是验证它的形式! @Soroush 我不确定您是否阅读了上述答案,但实际上不可能 100% 准确地验证电子邮件地址的有效性/存在性。您能做的最好的事情就是发送一封确认电子邮件并等待回复。 :) 抱歉,如果这没有帮助。

以上是关于使用 Python 检查电子邮件是不是真实 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

无限循环?检查两台打印机是不是在线或离线 - 如果关闭则发送电子邮件

如何在 Python 中检查电子邮件是不是存在?

如何检查电子邮件是不是确实存在

如何检查 smtp 是不是从命令行(Linux)工作 [关闭]

ActionMailer在测试模式下发送真实的电子邮件! - 如何关闭?

为啥要在 Python 中隐式检查是不是为空? [关闭]