有效的电子邮件地址长度

Depositphotos 1948865年代

我今天不得不进行一些挖掘才能找到它,但是您知道电子邮件地址的有效长度是多少吗? 它实际上被分成了几部分…… 名称@ Domain.com。 这是根据 RFC2822.

  1. 名称可以是1到64个字符。
  2. 域可以是1到255个字符。

哇...这意味着这可能是有效的电子邮件地址:


氯麦角ad
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
长尾鸲鹬
LaaluctuscaPellentesqueatinciduntbadiamaidacondimn
土瓜瘤胃
枸al酸胆碱
ciduntaturpisaduis.com

试着把它贴在名片上! 具有讽刺意味的是,大多数电子邮件地址字段在网络上限制为100个字符。 这实际上是无效的。 如果您想验证使用PHP进行正确构造的电子邮件地址,我在网上找到了以下代码段:

http://derrick.pallas.us/email-validator/ # 许可证:Academic Free License 2.1 # 版本:2006-12-01a if (!ereg('' . '^' . '[-!#$%&\ '*+/0-9=?AZ^_a-z{|}~]' .'(\\.?[-!#$%&\'*+/0-9=?AZ^_a-z{ |}〜])*'。'@'。'[a-zA-Z](-?[a-zA-Z0-9])*'。'(\\。[a-zA-Z](- ?[a-zA-Z0-9])*)+'。'$',$ email)))返回false; list( $local, $domain ) = split( "@", $email, 2 ); 如果( strlen($local) > 64 || strlen($domain) > 255 )返回假; 如果($ check &&!gethostbynamel($ domain))返回false; 返回true; # 结尾 ###### }

9条评论

  1. 1
  2. 2

    是的,我注意到其他解决方案也缺乏与RFC的合规性。 不过,我已经注意到,即使这个正则表达式也不是典型的,也不是标准的。 我记得对于大多数进程而言,阅读实际的正则表达式(允许<,>,等)过于密集。

    但是,它写的简洁,绝对是任何企业电子邮件应用程序都可以接受的解决方案。

    再次感谢!
    道格

  3. 3

    不幸的是,我将该页面链接到错误的RFC(2821而不是2822),但已得到纠正。 尖括号不能是电子邮件地址的本地或域部分的一部分; 相反,它们表示标记化点,即,由于它们不能成为地址的一部分,因此它们可以用于包围电子邮件地址(例如,在您的邮件阅读器中)。

    我的功能不执行的一件事是担心电子邮件地址的引号形式(本地部分用双引号引起),因为RFC2821本质上说,没有人应该这样写。 (我认为该表格是为了向后兼容,现在是不好的做法。)

  4. 4
  5. 5

    RFC 2821中对MAIL和RCPT命令中的256个字符的地址长度有限制。 地址长度的上限通常应认为是256。

    —来源:RFC 3696勘误

    另外,由于RFC 2181指出“完整的域名限制为255个八位字节”,因此人们(包括其他RFC的作者)反复将其误解为域名的长度为255个字符。 但是RFC2181讨论的是DNS协议级别的在线表示,而不是可打印字符。

    域名的最大长度为253个字符(254个字符,包括结尾的点,在线上为255个八位字节,结尾为null)。 这就是BIND和DiG的实现方式。

  6. 6
  7. 7
  8. 8

你觉得呢?

本网站使用Akismet来减少垃圾邮件。 了解您的数据如何处理.