root@[127.1]
不是符合语法的电子邮件地址。
为什么?为什么不?
root@[127.1]
不是符合语法的电子邮件地址。
为什么?为什么不?
您需要检查RFC 5322,第3.4.1节。
本规范是对请求评论(RFC)2822的修订版,它本身取代了请求评论(RFC)822,“ARPA Internet文本消息格式标准”,更新以反映当前实践并合并在其他RFC中指定的增量更改。
我将您的电子邮件地址通过http://isemail.info/进行了检查,结果如下:
总体结果为:根据RFC 5322的广义定义,该地址仅有效。否则无效。
具体诊断为:域文字面值不是有效的RFC 5321地址文字面值
这是电子邮件RFC的相关段落:
domain-literal = [CFWS]“[”*([FWS] dtext)[FWS]“]”[CFWS]
(RFC 5322第3.4.1节)
[IPv6:::1]
)的地址文字。我假设您指的是“Mailbox”,即<>之间的所有内容,但不包括源路由。我会使用后一种定义,因为如果我的SMTP服务器无法接受电子邮件地址,则该电子邮件地址没什么用。(此外,还有RFC 5336,也称为“UTF8SMTP”。我不知道有谁在使用它。)root@[foo]
。它在语法上是有效的。 - R. Martinho Fernandesroot@[127.1]
。它允许方括号内的几乎所有内容。 - R. Martinho Fernandes addr-spec = local-part "@" domain ; global address
domain = sub-domain *("." sub-domain)
sub-domain = domain-ref / domain-literal
domain-literal = "[" *(dtext / quoted-pair) "]"
dtext = <any CHAR excluding "[", ; => may be folded
"]", "\" & CR, & including
linear-white-space>
不是有效的电子邮件地址。
电子邮件的有效性有一些广泛的定义,如果将地址分成两个部分,本地部分(@符号之前)和域名部分(@符号之后)。本地部分可以是字母数字,带有以下特殊字符“。”,“-”和“_”,本地部分不能包含连续的句点。
域名部分必须符合主机名或由方括号括起来的IP地址的定义。
由于您的示例不符合有效主机名(foo.bar)的要求,并且它不包含由方括号括起来的有效IP地址,因此它不是有效的电子邮件地址。
请查看以下电子邮件验证器代码(减去IP地址验证部分),它将验证电子邮件地址。这可以很容易地改装为与IP地址域名一起使用。