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


当前回答

不幸的是,其他答案都是错的。大多数人引用了RFC 2821或更新的版本,该版本甚至没有定义电子邮件地址。它所做的就是定义路径。电子邮件地址由RFC 2822(或更新的版本)定义,可以更长。有效地址不是有效路径的例子有:

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

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

其他回答

TLDR回答

给出一个像这样的电子邮件地址……

me@example.com

长度限制如下:

整个电子邮件地址(又名:“路径”):即me@example.com—最多256个字符。 Local-Part:即me—最多64个字符。 域名:例如example.com,最多254个字符。

源——TLDR;

RFC标准在不断发展,但如果你想在一行中获得2009年IETF源代码:

...地址长度的上限通常被认为是256。(来源:RFC3696。)

来源-历史

SMTP最初在1982年8月发布的RFC821中定义了路径,这是一个官方的互联网标准(大多数RFC只是建议)。引用它…

...反向路径,指定邮件来自谁。 ...转发路径,用于指定邮件的收件人。

RFC2821, published in April 2001, is the Obsoleted Standard that defined our present maximum values for local-parts, domains, and paths. A new Draft Standard, RFC5321, published in October 2008, keeps the same limits. In between these two dates, RFC3696 was published, on February 2004. It mistakenly cites the maximum email address limit as 320-characters, but this document is "Informational" only, and states: "This memo provides information for the Internet community. It does not specify an Internet standard of any kind." So, we can disregard it.

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

邮件地址长度不超过254个字符。

IETF在提交勘误表后接受了这一点。任何给定地址的完整诊断都可以在网上找到。RFC 3696的原始版本将320描述为最大长度,但John Klensin随后接受了一个不正确的值,因为路径被定义为

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

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

RFC 5321中规定的最大长度说明:

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

这里更正了RFC 3696。

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

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

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

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

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

RFC (Request for Comments)是互联网工程任务组(IETF)的一种出版物,它将254个字符定义为限制。位于这里- https://www.rfc-editor.org/rfc/rfc5321#section-4.5.3

用户 用户名的总长度不能超过64个字符。 域 域部分(@后面的部分)最多255个字符

然而,在RFC 2821中有一个限制:

反向路径和正向路径的总长度最大为256 字符,包括标点符号和元素分隔符”。自 不符合这些字段的地址通常是没有用的 地址长度的上限通常被认为是 path = " < " [a -d-l ": "]邮箱" > " 中至少包含一对尖括号 添加到邮箱,将电子邮件地址限制为254 字符。

根据以下文章:

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

其中提到:

“有长度限制 电子邮件地址。该限制是最大64个字符(八位字节) 在“本地部分”(@前面),最大长度为255个字符 (八位字节)在域部分(“@”之后),总长度为320 字符。处理电子邮件的系统应该准备好处理 有那么长的地址,尽管很少有 遇到。”

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