Python 验证电子邮件的函数(IDN感知)

Python 验证电子邮件的函数(IDN感知),python,Python,是否有任何python函数可以验证电子邮件地址,并知道IDN域? 例如,user@example.com应该尽可能正确user@zäz.de或用户@納豆.ac.jp 谢谢。验证电子邮件地址非常困难,因为语法非常灵活。最好的策略是将测试电子邮件发送到输入的地址。由于语法非常灵活,验证电子邮件地址非常困难。最好的策略是向输入的地址发送测试电子邮件。我认为最好的方法是通过HTTP请求打开邮件服务器端口,看看它是否响应 web = httplib.HTTPConnection(domain, 25, t

是否有任何python函数可以验证电子邮件地址,并知道IDN域? 例如,user@example.com应该尽可能正确user@zäz.de或用户@納豆.ac.jp


谢谢。

验证电子邮件地址非常困难,因为语法非常灵活。最好的策略是将测试电子邮件发送到输入的地址。

由于语法非常灵活,验证电子邮件地址非常困难。最好的策略是向输入的地址发送测试电子邮件。

我认为最好的方法是通过HTTP请求打开邮件服务器端口,看看它是否响应

web = httplib.HTTPConnection(domain, 25, timeout=5)
web.connect()

然后检查是否打开。

我认为最好的方法是通过HTTP请求打开邮件服务器端口,看看它是否响应

web = httplib.HTTPConnection(domain, 25, timeout=5)
web.connect()

检查是否打开。

Django从1.2版开始支持IDN电子邮件验证

请参见此处的验证代码:

参考:

例如:

Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from django.core.validators import validate_email
>>> try: validate_email(u'user@example.com'); print "passed"
... except: print "failed"
... 
passed
>>> try: validate_email(u'user@zääz.de'); print "passed"
... except: print "failed"
... 
passed
>>> try: validate_email(u'user@納豆.ac.jp'); print "passed"
... except: print "failed"
... 
passed
>>> try: validate_email(u'this-should-fail@@納豆.ac.jp'); print "passed"
... except: print "failed"
... 
failed

在使用Django模块之前,您可能需要定义一些环境设置,请参阅此处的文档:

Django从1.2版起支持IDN电子邮件验证

请参见此处的验证代码:

参考:

例如:

Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from django.core.validators import validate_email
>>> try: validate_email(u'user@example.com'); print "passed"
... except: print "failed"
... 
passed
>>> try: validate_email(u'user@zääz.de'); print "passed"
... except: print "failed"
... 
passed
>>> try: validate_email(u'user@納豆.ac.jp'); print "passed"
... except: print "failed"
... 
passed
>>> try: validate_email(u'this-should-fail@@納豆.ac.jp'); print "passed"
... except: print "failed"
... 
failed

在使用Django模块之前,您可能需要定义一些环境设置,请参阅此处的文档:

这也不总是有效的。此方法将在DNS中查找“A”(地址)记录;但是,这通常不是邮件服务器。您需要获取“MX”(邮件交换)记录。正如@kindall所说,最简单的方法是向该地址发送电子邮件。这也不总是有效的。此方法将在DNS中查找“A”(地址)记录;但是,这通常不是邮件服务器。您需要获取“MX”(邮件交换)记录。最简单的方法是,正如@kindall所说的,发送一封电子邮件到我想要的地址。谢谢:)正是我想要的。谢谢:)