有效电子邮件地址的最大长度是多少?它是由任何标准定义的吗?
当前回答
用户 用户名的总长度不能超过64个字符。 域 域部分(@后面的部分)最多255个字符
然而,在RFC 2821中有一个限制:
反向路径和正向路径的总长度最大为256 字符,包括标点符号和元素分隔符”。自 不符合这些字段的地址通常是没有用的 地址长度的上限通常被认为是 path = " < " [a -d-l ": "]邮箱" > " 中至少包含一对尖括号 添加到邮箱,将电子邮件地址限制为254 字符。
其他回答
用户 用户名的总长度不能超过64个字符。 域 域部分(@后面的部分)最多255个字符
然而,在RFC 2821中有一个限制:
反向路径和正向路径的总长度最大为256 字符,包括标点符号和元素分隔符”。自 不符合这些字段的地址通常是没有用的 地址长度的上限通常被认为是 path = " < " [a -d-l ": "]邮箱" > " 中至少包含一对尖括号 添加到邮箱,将电子邮件地址限制为254 字符。
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。
不幸的是,其他答案都是错的。大多数人引用了RFC 2821或更新的版本,该版本甚至没有定义电子邮件地址。它所做的就是定义路径。电子邮件地址由RFC 2822(或更新的版本)定义,可以更长。有效地址不是有效路径的例子有:
(Firstname Lastname) user@domain
Firstname Lastname <user@domain>
这两个都是相同的邮箱,但写得不同。因此,如果您的目标是在数据库中存储电子邮件地址,254、256或320个字节的限制可能太低了,尽管在实践中,这很少会成为问题。
其他的回答把水搅浑了一点。 简单的回答:我们控制的电子邮件的总字符为254个 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上找到它们
推荐文章
- 如何在Jenkins中设置发件人地址?
- 用javascript检查输入字符串中是否包含数字
- jQuery添加必要的输入字段
- 什么是最好的Java电子邮件地址验证方法?
- PHPMailer字符编码问题
- 我应该在SQL varchar(长度)中考虑电话的最长的全球电话号码是什么
- Require (vendor/autoload.php):无法打开流
- 用Django创建电子邮件模板
- 在邮件正文中插入换行符
- 使用Javascript函数设置输入值
- 如何检查有效的电子邮件地址?
- Regex邮件验证
- 使用Hibernate Validator进行跨域验证(JSR 303)
- 使用c#通过Gmail SMTP服务器发送邮件
- 如何缩小与已知的最小值和最大值的数字范围