有效电子邮件地址的最大长度是多少?

What is the maximum length of a valid email address?

提问人:volatilevoid 提问时间:12/22/2008 最后编辑:Rodrigovolatilevoid 更新时间:11/10/2021 访问量:508334

问:

有效电子邮件地址的最大长度是多少?它是由任何标准定义的吗?

验证 电子邮件 最大 电子邮件地址

评论

0赞 Toby Speight 2/19/2018
什么样的电子邮件地址?互联网、X.400 还是其他?
2赞 MGOwen 6/7/2018
请注意,您的应用应为电子邮件地址施加的长度限制可能与理论最大值比整个评论更长不同。其他答案讨论了这个问题,例如:stackoverflow.com/questions/1297272
0赞 jumping_monkey 11/16/2022
我尝试创建一个包含 245 个字符的 gmail 地址(@gmail.com 减去 10 个字符),gmail 告诉我:Sorry, your username must be between 6 and 30 characters long.
0赞 Thomas Guyot-Sionnest 8/18/2023
另一个需要考虑的重要信息是,每当您严格查看电子邮件地址部分 () 或以 、 、 和 标题格式格式化的电子邮件地址时。user@domainFrom:Sender:Reply-To:To:Cc:
0赞 Mark McWiggins 8/31/2023
根据一些安全研究人员的说法,较长的电子邮件地址更有可能被垃圾邮件发送者使用......我现在找不到参考资料,但我记得在过去几个月的某个时候看到过这个。这种测试已经在垃圾邮件过滤系统中可用,如 SpamAssassin,在这种情况下,您可以应用HEAD_LONG规则。我已经使用它多年了......我的妻子收到了大量的垃圾邮件,当我们使用它时,我不得不把它放在 gmail 前面,因为他们开始限制我们的邮件。(从那以后,我们改用了质子邮件,我们为此付费......更好!

答:

70赞 Bob 12/22/2008 #1

320

这些段看起来像这样

{64}@{255}

64 + 1 + 255 = 320

如果您正在验证电子邮件,您还应该阅读以下内容: 在我阅读 RFC 之前,我知道如何验证电子邮件地址

评论

13赞 Carl 7/24/2009
这是一篇可爱的文章,消除了关于电子邮件的各种神话,包括“max len == 320”。限制实际上是 254。
79赞 Bob 7/24/2009
可爱的文章在哪里?
5赞 vp_arth 7/5/2015
这个答案是正确的。这封电子邮件有效,但绝对无法使用,因为 2821 将 MAIL/RCPT 命令限制为带括号的 256......<>
1赞 Aaron Esau 1/9/2017
这是否包括格式的电子邮件?user+inbox@domain
3赞 Matthijs Kooijman 3/13/2020
这个答案错过了参考资料。它可能来自RFC3696,但标准的这一部分在勘误表中进行了修改,以包括 254 个字符的总限制。有关详细信息和勘误表的链接,请参阅已接受的答案。
1446赞 7 revs, 3 users 74%Dominic Sayers #2

电子邮件地址不得超过 254 个字符。

IETF 在提交勘误表后接受了这一建议。任何给定地址的完整诊断都可以在线获得。RFC 3696 的原始版本将 320 描述为最大长度,但 John Klensin 随后接受了不正确的值,因为 Path 定义为

Path = "<" [ A-d-l ":" ] Mailbox ">"

因此,Mailbox 元素(即电子邮件地址)周围有尖括号以形成 Path,其最大长度为 254 个字符,以将 Path 长度限制为 256 个字符或更少。

RFC 5321 中指定的最大长度规定:

反向路径或正向路径的最大总长度为 256 个字符。

RFC 3696 已在此处得到更正。

人们应该特别注意针对 RFC 3696 的勘误表。其中三个规范示例实际上是无效地址。

我整理了几百个测试地址,您可以在 http://www.dominicsayers.com/isemail 找到这些地址

评论

13赞 Pacerier 7/11/2012
新的RFC标准允许在电子邮件地址中使用Unicode,这又如何呢?
4赞 Geoffrey 4/21/2013
@之前有多少个字符,后面有多少个字符,还是无关紧要?
9赞 Dominic Sayers 2/12/2014
@Lodewijk RFC 3696 不是一个标准,它只是试图帮助人们正确解释基础标准。不幸的是,在试图澄清情况时,克伦辛在勘误表中纠正了一些严重的错误。但是没有人阅读勘误表,因此具有讽刺意味的是,RFC 3693 最终非常无益。
5赞 Andre D 5/6/2016
我相信对于国际化的电子邮件地址,将限制定义为 254 个八位字节而不是字符会更正确。但我不确定。RFC 6531 扩展了 RFC 5321 的反向和正向路径以允许 UTF-8 字符,但 RFC 5321 明确指出限制为“256 个八位字节”,包括分隔符(这是 RFC 2821 的故意更改,RFC 2821 说“字符”)。我相信 256 个八位字节的限制(254 减去 254)不会被取代,并且对于具有多字节 UTF-8 字符的地址,有效字符限制会降低。
2赞 Binarus 11/2/2017
我偶然发现了与@AndreD相同的问题,我同意他的观点。另一方面,dominicsayers.com/isemail 仍然说它是 254 个字符。有人知道更多吗?我相信它是八位字节而不是字符,但这意味着理论上最大字符数可能是 63 个。我不敢相信新的 RFC 6531 不能解决这个问题,所以我不确定。
35赞 Artem Kovalov 1/29/2015 #3

用户

用户名的最大总长度为 64 个字符。

域部分最多 255 个字符(“@”后面的字符)

但是,RFC 2821 中有一个限制:

反向路径或正向路径的最大总长度为 256 字符,包括标点符号和元素分隔符”。因为 不适合这些字段的地址通常没有用, 地址长度的上限通常应被视为 256,但路径定义为:Path = “<” [ A-d-l “:” ] 邮箱 “>” 正向路径将包含至少一对尖括号 添加到邮箱,将电子邮件地址限制为 254 字符。

评论

11赞 vp_arth 7/5/2015
1982 年很酷的古老 rfc......有用于 SMTP 的 rfc5321
0赞 Eric Mutta 10/19/2022
+1 这是 RF5321 定义限制的部分的直接链接(请注意,它以字节/八位字节而不是“字符”为单位 - 请参阅 Unicode 和电子邮件)。
26赞 Joshua Dance 6/2/2017 #4

为了帮助像我这样困惑的菜鸟,“有效电子邮件地址的最大长度是多少?”的答案是 254 个字符

如果您的应用程序使用电子邮件,只需将您的字段设置为接受 254 个字符或更少,您就可以开始了。

你可以对一封电子邮件运行一堆测试,看看它是否在这里有效。http://isemail.info/

RFC 或征求意见是 Internet 工程任务组 (IETF) 的一种出版物,它将 254 个字符定义为限制。位于这里 - https://www.rfc-editor.org/rfc/rfc5321#section-4.5.3

评论

0赞 HoldOffHunger 7/10/2021
你在哪里读“254个字符”?我在您提供的链接中看到,“反向路径或正向路径的最大总长度为 256。“254”上的 Ctrl+F 也找不到任何内容。
0赞 Michael Große 9/5/2021
@HoldOffHunger那里: rfc-editor.org/errata_search.php?rfc=3696&eid=1690 “但是,RFC 2821 对 MAIL 和 RCPT 命令中地址长度的限制为 254 个字符。由于不适合这些字段的地址通常没有用处,因此地址长度的上限通常应被视为 254。
0赞 HoldOffHunger 9/5/2021
@MichaelGro谢谢!该信息实际上列在我的答案中(实际上,我准确地列出了#3696等),在我无法得到回复后最终回答了,但感谢您确认我对这个答案的预感。
25赞 Waqar UlHaq 4/4/2018 #5

根据以下文章:

https://www.rfc-editor.org/rfc/rfc3696(第 6 页,第 3 节)

它提到:

“有长度限制 电子邮件地址。该限制最多为 64 个字符(八位字节) 在“本地部分”(在“@”之前)中,最多 255 个字符 (八位字节)在域部分(在“@”之后),总长度为 320 字符。处理电子邮件的系统应准备好处理 那么长的地址,即使它们很少 邂逅。

因此,电子邮件地址的最大总长度为 320 个字符 (“本地部分”:64 + “@”:1 + “域部分”:255,总和为 320)

评论

0赞 Kamlesh 9/19/2019
您能否提供 JavaScript 中的正则表达式来验证 320 个字符的电子邮件 ID?提前致谢。
6赞 Matthijs Kooijman 3/13/2020
该标准的这一部分在勘误表中进行了修订,以包括 254 个字符的总限制。有关详细信息和勘误表的链接,请参阅已接受的答案。
0赞 NeoH4x0r 10/14/2020
它实际上在第 4 页第 3 节(对电子邮件地址的限制)tools.ietf.org/html/rfc3696#section-3
22赞 Forrest 4/13/2018 #6

另一个答案有点浑水。简单的答案:我们控制的电子邮件 256 总共有 254 个字符用于整个电子邮件地址,其中包括开头的隐含“<”和结尾的“>”。因此,剩下 254 个供我们使用。

7赞 HoldOffHunger 2/14/2021 #7

TLDR 答案

给定一个电子邮件地址,例如...

[email protected]

长度限制如下:

  • 整个电子邮件地址(又名:“路径”):即 [email protected] -- 最大字符数。256
  • Local-Part:即 me -- 字符最大值。64
  • 域:即 example.com -- 最大字符数。254

来源 — TLDR;

RFC 标准在不断发展,但如果您想要在一行中提供 2009 IETF 源代码:

...地址长度的上限通常应被视为 256。(来源:RFC3696

来源 — 历史

SMTP 最初在 1982 年 8 月发布的 RFC821 中定义了路径,RFC821官方的 Internet 标准(大多数 RFC 只是提案)。引用它...

...反向路径,指定邮件的发件人。

...转发路径,用于指定邮件的收件人。

2001 年 4 月发布的 RFC2821 是过时的标准,它定义了我们目前局部部分、域和路径的最大值。2008 年 10 月发布的新标准草案 RFC5321 保留了相同的限制。在这两个日期之间,RFC3696于2004年2月出版。它错误地将最大电子邮件地址限制引用为 -characters,但本文档仅供“参考”,并指出:“本备忘录为互联网社区提供信息。它没有指定任何形式的互联网标准。所以,我们可以忽略它。320

引用 RFC2821 的话,RFC5321 年确认的现代、公认的标准......

4.5.3.1.1. 局部部分

用户名或其他本地部分的最大总长度为 64 字符。

4.5.3.1.2. 域

域名或号码的最大总长度为 255 个字符。

4.5.3.1.3. 路径

反向路径或正向路径的最大总长度为 256 字符(包括标点符号和元素分隔符)。

您会注意到,我指示域最大值为 254,RFC 指示域最大值为 255。这是一个简单的算术问题。一个 255 个字符的域加上“@”号,就是一个 256 个字符的路径,这是最大路径长度。但是,空名称或空白名称是无效的,因此该域实际上最多有 254 个。

0赞 Remember Monica 5/6/2021 #8

可悲的是,所有其他答案都是错误的。他们中的大多数引用了 RFC 2821 或更高版本,它甚至没有定义电子邮件地址。它所做的是定义路径。电子邮件地址由 RFC 2822(或更高版本)定义,并且可以更长。非有效路径的有效地址示例如下:

(Firstname Lastname) user@domain
Firstname Lastname <user@domain>

这两个邮箱是同一个邮箱,写法不同。因此,如果您的目标是将电子邮件地址存储在数据库中,那么 254、256 或 320 个八位字节的限制可能太低,尽管在实践中,这很少会成为问题。

评论

0赞 EML 7/24/2023
2822 没有定义“电子邮件地址”。字符串“mail address”在不相关的上下文中仅出现一次。它有一个“地址规范”,即一个邮箱或一组邮箱。群组显然不是“电子邮件地址”。“电子邮件地址”肯定是您发送到 SMTP 服务器以发送电子邮件的地址(转发路径),或者是故障报告的目标(反向路径),正如其他人所说的那样。
0赞 Thomas Guyot-Sionnest 8/18/2023
@EML 这个答案是绝对有效的,RFC2822很好地定义了电子邮件地址,请参阅第 3.4 节。地址规范,具体为 、 和 。addressname-addrangle-addraddr-spec