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

时间:2008-12-22 13:57:54

标签: validation email max email-address

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

9 个答案:

答案 0 :(得分:1082)

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

IETF在submitted erratum之后接受了这一点。可以获得任何给定地址的完整诊断online。 RFC 3696的原始版本将320描述为最大长度,但John Klensin随后接受了不正确的值,因为Path定义为

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

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

RFC 5321中指定的最大长度:

  

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

RFC 3696已更正here

我现在整理了来自Cal Henderson,Dave Child,Phil Haack,Doug Lovell和RFC 3696的测试用例。总共有158个测试地址。

我针对我能找到的所有验证器运行了所有这些测试。比较如下:http://www.dominicsayers.com/isemail

我会尝试让这个页面保持最新状态,因为人们会增强验证器。感谢Cal,Dave和Phil在编写这些测试和对我自己的验证器的建设性批评方面的帮助和合作。

人们应该特别注意errata against RFC 3696。其中三个规范示例实际上是无效地址。

答案 1 :(得分:29)

320

分段看起来像这样

{64} {@ 255}

64 + 1 + 255 = 320

如果您要验证电子邮件,也应该阅读此内容

http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx

答案 2 :(得分:13)

  

用户

     

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

     

<强>域

     

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

但是,RFC 2821阅读中存在限制:

  

反向路径或前向路径的最大总长度为256   字符,包括标点符号和元素分隔符“。以来   那些不适合这些字段的地址通常不是很有用的   通常应考虑地址长度的上限   256,但路径定义为:Path =“&lt;”[A-d-l“:”]邮箱“&gt;”   前向路径将包含至少一对尖括号   除了邮箱,它将电子邮件地址限制为254   字符。

答案 3 :(得分:9)

为了帮助像我这样迷茫的新手,答案是&#34;有效电子邮件地址的最大长度是多少?&#34; 254个字符

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

您可以在电子邮件上运行一系列测试,看看它是否有效。 http://isemail.info/

RFC或Request for Comments是Internet工程任务组(IETF)的一种发布,它定义了254个字符作为限制。位于此处 - https://tools.ietf.org/html/rfc5321#section-4.5.3

答案 4 :(得分:7)

另一个答案有点浑水。 简单回答:我们控制电子邮件的总共有254个字符 256个用于整个电子邮件地址,其中包含隐含的“&lt;”在开头,和“&gt;”在末尾。因此,剩余254个供我们使用。

答案 5 :(得分:1)

根据以下文章:

http://tools.ietf.org/html/rfc3696(第6页,第3节)

它提到:

  

&#34;有一个长度限制      电子邮件地址。该限制最多为64个字符(八位字节)      在&#34;本地部分&#34; (在&#34; @&#34;之前)和最多255个字符      (八位字节)在域部分(&#34; @&#34;之后),总长度为320      字符。处理电子邮件的系统应该准备好处理      这些地址很长,即使它们很少      。遇到&#34;

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

答案 6 :(得分:1)

TLDR 答案

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

me@example.com

长度限制如下:

  • 整个电子邮件地址(又名:“路径”):即,me@example.com -- 最多 256 个字符。
  • 本地部分:即 me -- 64 个字符最大值。
  • 域:即 example.com -- 最多 254 个字符。

来源

SMTP 最初定义了 RFC821 中的路径,该路径于 1982 年 8 月发布,即 an official Internet Standard(大多数 RFC 只是提案)。引用它...

<块引用>

...一个反向路径,指定邮件来自谁。

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

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

引用 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 个。

答案 7 :(得分:0)

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

(Firstname Lastname) user@domain 名字姓氏 user@domain

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

答案 8 :(得分:-1)

64表示本地部分(帐户/名称),255表示域。我认为@符号将被计算为额外的,因此总和为320。

但请注意:这只是真实地址的长度。地址可能包含显示名称。这样的地址看起来像first last <local@domain>,通常会延长320。