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

4
我使用Python 3,想在发送邮件之前检查电子邮件地址是否存在。
我尝试了pip的validate_email包,但它根本不起作用。它对于每个包含'@'的字符串都返回true,而不带符号。也许有另一个pip包可以工作(我看到了像validate-email-address、email-validator、py3-validate-email和email-validator这样的包)?或者有一些代码可以通过SMTP进行检查吗?

4
验证电子邮件地址的唯一方法是发送电子邮件并获取回复。 - Dave S
你百分之百确定吗?在发送之前一定有一些检查的方法。 - user7551211
4
不,一个格式良好的地址并不意味着它存在一个邮箱。例如,puffin-ocelot-banjo-1234567890-fake-fake@google.com 是格式良好但并非真实地址,除非有人决定要使用它。 :) - Dave S
直到1995年左右还有可靠的电子邮件验证机制。然后垃圾邮件发送者出现了,它们不得不被关闭。 - tripleee
1个回答

4

默认情况下,validate_email 并不会真正验证太多。您需要启用 DNS 验证和 SMTP 验证:

validate_email(email, check_mx=True, verify=True, smtp_timeout=60)

请分享完整的代码参考或Gist参考。 - Tejas Tank

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接