似乎无法找到如何在App Engine中检查有效的电子邮件

时间:2010-12-20 06:09:02

标签: python django google-app-engine

任何人都知道任何文档可能在哪里? 到目前为止我只发现了这个

http://code.google.com/appengine/articles/djangoforms.html

EmailProperty()仅验证空字符串... 叹息

2 个答案:

答案 0 :(得分:5)

以下验证服务器上的电子邮件地址:

from google.appengine.api import mail
if not mail.is_email_valid(to_addr):
  # Return an error message...

希望有帮助吗?

答案 1 :(得分:3)

如果您查看Google mail功能的来源,您会看到 mail.is_email_valid()仅检查字符串是否为空/空。

从此site我找到了符合RFC822标准的Python电子邮件地址验证程序。

import re

qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]'
dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]'
atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+'
quoted_pair = '\\x5c[\\x00-\\x7f]'
domain_literal = "\\x5b(?:%s|%s)*\\x5d" % (dtext, quoted_pair)
quoted_string = "\\x22(?:%s|%s)*\\x22" % (qtext, quoted_pair)
domain_ref = atom
sub_domain = "(?:%s|%s)" % (domain_ref, domain_literal)
word = "(?:%s|%s)" % (atom, quoted_string)
domain = "%s(?:\\x2e%s)*" % (sub_domain, sub_domain)
local_part = "%s(?:\\x2e%s)*" % (word, word)
addr_spec = "%s\\x40%s" % (local_part, domain)


email_address = re.compile('\A%s\Z' % addr_spec)
# How this is used: 
def isValidEmailAddress(email):
    if email_address.match(email):
        return True
    else:
        return False

*如果您使用此版本,请使用this版本,因为它包含创建它的人的姓名等。