当前位置: 首页 > 面试题库 >

Python-如何检查有效的电子邮件地址?

冯曾笑
2023-03-14
问题内容

有没有一种使用正则表达式检查表单输入的好方法,以确保它是正确的样式电子邮件地址?自昨晚以来一直在搜索,如果它是子域的电子邮件地址,则回答了有关该主题的人们疑问的每个人似乎也有问题。


问题答案:

无关紧要。即使你可以验证该电子邮件地址在语法上是有效的,你仍然需要检查该电子邮件地址是否未键入错误,以及该地址是否确实属于你认为确实有用的人。唯一的方法是向他们发送电子邮件,并让他们单击链接进行验证。

因此,最基本的检查(例如,他们没有意外输入街道地址)通常就足够了。喜欢的东西:它只能有一个@标志,和至少一个.在后的部分@

[^@]+@[^@]+\.[^@]+

你可能还想禁止使用空格-可能有有效的电子邮件地址,其中包含空格,但我从未见过,因此,出现用户错误的可能性就在你身边。

如果要全面检查,请查看此问题。

更新:这是你如何使用任何此类正则表达式的方法:

import re

if not re.match(r"... regex here ...", email):
  # whatever

Python≥3.4具有比re.fullmatch更好的选择re.match

注意r字符串的前面;这样,你就不必两次逃脱。

如果要检查的正则表达式数量很多,那么先编译正则表达式可能会更快:

import re

EMAIL_REGEX = re.compile(r"... regex here ...")

if not EMAIL_REGEX.match(email):
  # whatever

另一个选择是使用该validate_email程序包,该程序包实际上与SMTP服务器联系以验证该地址是否存在。但是,这仍然不能保证它属于正确的人。



 类似资料:
  • 问题内容: 我编写了一个向新闻稿库添加电子邮件的功能。直到我添加了已发送电子邮件的有效性检查,它都可以正常工作。现在,每次我得到“错误的电子邮件”作为回报。有人可以在这里看到任何错误吗?使用的正则表达式为: 并且它是100%有效的(http://gskinner.com/RegExr/),但是我可能使用它是错误的,或者它可能是一些逻辑错误: 问题答案: 这是的一部分,你可能会觉得很有趣:) 因此,

  • 我发现一些网站声称可以验证电子邮件地址是否有效。是否可以仅使用PHP检查电子邮件地址是否有效? 这就是我现在拥有的。它检查域是否存在,但不能检查用户的电子邮件是否存在于该域上。是否可以使用PHP做到这一点?

  • 问题内容: 我有兴趣在收到来自具有特定主题的特定地址的电子邮件时触发某些操作。为了能够做到这一点,我需要对邮箱进行监视,检查每个传入的邮件(特别是我使用gmail)。最简单的方法是什么? 问题答案: Gmail提供了通过POP进行连接的功能,您可以在gmail设置面板中将其打开。Python可以使通过POP的连接非常容易: 您只需要将此脚本作为cron作业运行即可。不确定您使用的平台如何,YMMV

  • 问题内容: 我碰到过此PHP代码,无需发送电子邮件即可使用SMTP检查电子邮件地址。 有没有人尝试过类似的方法或对您有用?您能告诉客户/用户输入的电子邮件是否正确并且存在吗? 问题答案: 有时 可以使用两种方法来确定收件人是否确实存在: 您可以连接到服务器,然后发出命令。很少有服务器支持此命令,但正是为此目的而设计的。如果服务器以2.0.0 DSN响应,则该用户存在。 您可以发出,然后查看邮件是否

  • 问题内容: 在iOS9的最新联系人框架中,如何仅检索具有有效电子邮件地址的CNContact? 当前代码: 问题答案: 目前(iOS 9.0),似乎没有谓词(请参阅CNContact谓词)可用于通过电子邮件地址过滤联系人! 您无法编写自定义谓词来过滤联系人,因为该文档说: “请注意,Contacts框架不支持通用谓词和复合谓词” 但是当然您可以“手动”完成操作,我为您展示了使用快速枚举的示例: 注

  • 在继续本章之前,有两个方面需要理解。 它们是Check and Fetch 。 在JavaMail中Check电子邮件是我们打开邮箱中的相应文件夹并获取每条消息的过程。 这里我们只检查每条消息的标题,即From, To, subject 。 内容未被阅读。 在JavaMail中Fetch电子邮件是我们打开邮箱中的相应文件夹并获取每条消息的过程。 除了标题,我们还通过识别内容类型来阅读内容。 要使用