我在研究电子邮件地址中是否允许两个或多个相同的不带引号的连续特殊字符时发现了相互矛盾的信息(!#$%&'*+-/=?^_'{|}~).
例如,我知道这些是合法的:
- my+email@yahoo.com
- 我的"$$"email@yahoo.com
我也知道前导句点、尾随句点和双句点是非法的。 我的问题是 - 这样的事情合法吗:
- my&&email@yahoo.com
谢谢!
从 RFC 5322 开始,"atom"是定义电子邮件地址中可以包含的内容的基本单位:
atext = ALPHA / DIGIT / ; Printable US-ASCII
"!" / "#" / ; characters not including
"$" / "%" / ; specials. Used for atoms.
"&" / "'" /
"*" / "+" /
"-" / "/" /
"=" / "?" /
"^" / "_" /
"`" / "{" /
"|" / "}" /
"~"
atom = [CFWS] 1*atext [CFWS]
"1*"是"1 或更多"的 ABNF,因此此制作对允许的字符数或其序列没有任何限制。因此,从理论上讲,即使是"my&&&&&&&&email@yahoo.com"也是合法的。
这是否是一个实际问题是由实现定义的;例如,Gmail忽略地址本地部分的所有点,以防止基本的欺骗攻击。