是否有任何python函数验证电子邮件地址,知道IDN域? 例如,user @ example.com应与user@zääz.de或user @纳豆.ac.jp一样正确
感谢。
答案 0 :(得分:2)
Django从版本1.2开始支持IDN电子邮件验证。
请在此处查看验证代码:http://code.djangoproject.com/svn/django/trunk/django/core/validators.py
参考:http://docs.djangoproject.com/en/1.2/ref/forms/fields/#emailfield
示例:
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模块,请参阅此处的文档:http://docs.djangoproject.com/en/dev/
答案 1 :(得分:1)
验证电子邮件地址非常困难,因为语法非常灵活。最好的策略是将测试电子邮件发送到输入的地址。
答案 2 :(得分:0)
我认为最好的方法是通过HTTP请求打开邮件服务器端口,看看它是否响应
web = httplib.HTTPConnection(domain, 25, timeout=5)
web.connect()
并检查是否会打开。