2013-03-21 133 views
4

我们的质量检查提交了一个错误消息,称该电子邮件地址的顶级域名不能为一个字符。顶级域名的电子邮件地址验证

[email protected] 

我很难研究标准。有人可以确认设置顶级域最小长度是否是正确的做法?

+1

电子邮件验证很难! z和其他东西是有效的。 – powtac 2013-03-21 00:34:26

+0

验证电子邮件地址的最佳方式是发送验证电子邮件。任何其他方法不能保证地址是有效的,只是它**可以是有效的,甚至是主观的。 – 2013-03-21 00:38:26

+0

标准说什么?它是否说有一个字符的TLD是有效的? – riship89 2013-03-21 00:40:51

回答

2

验证电子邮件地址的规则非常复杂,因为它们很可能在实施过程中出错。

而不是验证的电子邮件地址,考虑验证它,而不是直接:http://davidcel.is/blog/2012/09/06/stop-validating-email-addresses-with-regex/

与你的情况的问题,是有一个非常现实的可能性,ICANN可能会推出单字母顶级域名,并个别DNS标签可以长度为1,实际上“bar.z”是一个有效的电子邮件地址域名,如果从DNS树/组织内以子域名的形式发送的话(例如,如果邮件服务器是smtp.mycompany.org和我还为bar.z.mycompany.org定义了一个MX服务器)。

1

请注意,我为此写了一个小型C库文件libtld。它可能对你有用。请注意,支持全球所有顶级域名所需的数据量相当惊人,所以我不会在Javascript中实现这些。话虽如此,也许如果你可以压缩数据更多...该库还包括一个PHP扩展,所以你可以直接使用PHP的功能和结果。

0

到目前为止,电子邮件顶级域名的长度应该位于[2,6],但它并不是一个恒定的标准,因为一切都在变化。验证电子邮件非常困难,您不知道电子邮件地址是否可以在您尝试向其发送电子邮件之前实际接收电子邮件,尽管它符合电子邮件正式标准。

相关问题