我对 django EmailField 有同样的小问题。
forms.EmailField(required=True, label="E-mail", widget=forms.TextInput(attrs=
它不接受形式的电子邮件
它会返回错误格式的错误消息,但电子邮件正常工作(电子邮件已有 15 年历史)。
我认为 at-sign 之前的点是问题所在。
这是一个错误吗?是否有任何解决方案可以使其适用于此类电子邮件?
多谢 :)
最佳答案
在 RFC 5321 的 4.2.1 节中,地址的“本地部分”具有以下语法:
Local-part = Dot-string / Quoted-string
; MAY be case-sensitive
Dot-string = Atom *("." Atom)
Atom = 1*atext
我的解释是,一个 Atom 必须至少有一个字符,一个点字符串是一个或多个原子,它们之间有点,而本地部分是一个点字符串或一个带引号的字符串。如果我解释正确,那么原子必须始终跟在点之后,您的电子邮件地址正式无效,例如连续两个点也是无效的。
即使像 GMail 这样的服务器选择过滤掉本地部分中的所有点并接受这些地址,但这并不能使它们正式有效。
引用本地部分 (
"xx."@xxxx.xxx
) 应该可行,但您也可以编写自定义验证器和您自己的 EmailField 子类。关于python - django EmailField 点之前@,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27036030/