我正在尝试基于 this one. 测试我编写的新电子邮件验证功能,但有一些小的调整。
从大量有效和无效条目中,该函数仅找到一个假阴性 - 具有 IPv6 地址而不是域的地址。
user@[IPv6:2001:db8:1ff::a0b:dbd0]
来源是这个维基百科页面:Email Addresses然而,
System.Net.IPAddress
解析失败 IPv6:2001:db8:1ff::a0b:dbd0
,我在 RFC4291 中找不到任何引用资料到 IPv6 的任何前缀。显然,
IPv6:2001:db8:1ff::a0b:dbd0
不是有效的 IPv6 地址,但它在电子邮件地址中有效吗?还是维基百科错了?实际的电子邮件应该是
user@[2001:db8:1ff::a0b:dbd0]
有人知道吗?
最佳答案
查看 RFC4291 的 IPv6 地址格式是正确的。但是,对于 SMTP(以及任何其他电子邮件软件处理地址),您还应该查看 Address Literals在 RFC5321 .
您想要的可能是“IPv6-address-literal”。
关于email - IPv6 地址作为电子邮件地址的域部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18128697/