这条评论引导我RFC 5322§3.4.1内容如下:
An addr-spec is a specific Internet identifier that contains a locally
interpreted string followed by the at-sign character ("@", ASCII value
64) followed by an Internet domain.
The locally interpreted string is either a quoted-string or a dot-atom.
If the string can be represented as a dot-atom (that is, it contains no
characters other than atext characters or "." surrounded by atext
characters), then the dot-atom form SHOULD be used and the quoted-
string form SHOULD NOT be used. Comments and folding white space
SHOULD NOT be used around the "@" in the addr-spec.
我们可以atext
看到这里。
atext = ALPHA / DIGIT / ; Any character except controls,
"!" / "#" / ; SP, and specials.
"$" / "%" / ; Used for atoms
"&" / "'" /
"*" / "+" /
"-" / "/" /
"=" / "?" /
"^" / "_" /
"`" / "{" /
"|" / "}" /
"~"
综合所有这些,这是否意味着电子邮件地址实际上是一个有效地址,因为引号允许使用该符号?email@"[email protected]"
@
答案1
不,这无效。
之后的部分@
是域(“[电子邮件保护]“在您的示例中)。
您不能拥有带有符号的域名@
。
另请查看RFC 1035 2.3.1:
它们必须以字母开头,以字母或数字结尾,并且具有内部字符仅限字母、数字和连字符。
更多信息:
答案2
电子邮件规则非常复杂(而且很少能完全正确遵循),因此询问电子邮件是否有效并没有特别的帮助。相反,这是一个有多少网站会接受您的电子邮件的问题。电子邮件地址越奇特,您遇到不接受它的网站的可能性就越大 -即使它是在 RFC 标准中。例如,从my.email@com
技术上来说是一个有效的电子邮件,但使用它时会非常困难。
如果您是最终用户,这意味着您通常应该选择不要太有创意的电子邮件,无论您是否可以。编写违反规则的电子邮件可能会使某些网站难以使用,即使它在技术上是有效的。
如果您正在维护软件并且需要验证用户的电子邮件,最好的办法是向他或她发送一封验证电子邮件。这样,您就可以检查用户的电子邮件地址是否确实存在,而不必担心意外阻止电子邮件不符合 RFC 标准或电子邮件遵循边缘条件规则的用户。(值得使用一些常识性规则进行客户端验证以帮助用户纠正拼写错误,但您应该让用户在需要时覆盖该验证。)
这个问题StackOverflow 上的一篇文章很好地讨论了这些问题。本网站让您检查电子邮件是否有效。页面上的第二条评论给出了一个示例,某人有一个有效的电子邮件地址,但由于其非常不寻常而难以使用。
回答你最初的问题:不,这不是一个有效的电子邮件地址。即使它是,我还是建议不要使用它,如果用户声称这是他的电子邮件,你无论如何都应该向他发送一封验证电子邮件。email@"[email protected]"