有效的电子邮件地址长度

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); if(strlen($ local)> 64 || strlen($ domain)> 255)返回false; 如果($ 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 个八位字节在线路上,以空字符结尾)。 这就是 BIND 和 DiG 实现的。

  6. 6
  7. 7
  8. 8

你觉得呢?

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