提问人:volatilevoid 提问时间:12/22/2008 最后编辑:Rodrigovolatilevoid 更新时间:11/10/2021 访问量:508334
有效电子邮件地址的最大长度是多少?
What is the maximum length of a valid email address?
答:
320
这些段看起来像这样
{64}@{255}
64 + 1 + 255 = 320
如果您正在验证电子邮件,您还应该阅读以下内容: 在我阅读 RFC 之前,我知道如何验证电子邮件地址
评论
<>
user+inbox@domain
电子邮件地址不得超过 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 找到这些地址
评论
用户
用户名的最大总长度为 64 个字符。
域
域部分最多 255 个字符(“@”后面的字符)
但是,RFC 2821 中有一个限制:
反向路径或正向路径的最大总长度为 256 字符,包括标点符号和元素分隔符”。因为 不适合这些字段的地址通常没有用, 地址长度的上限通常应被视为 256,但路径定义为:Path = “<” [ A-d-l “:” ] 邮箱 “>” 正向路径将包含至少一对尖括号 添加到邮箱,将电子邮件地址限制为 254 字符。
评论
为了帮助像我这样困惑的菜鸟,“有效电子邮件地址的最大长度是多少?”的答案是 254 个字符。
如果您的应用程序使用电子邮件,只需将您的字段设置为接受 254 个字符或更少,您就可以开始了。
你可以对一封电子邮件运行一堆测试,看看它是否在这里有效。http://isemail.info/
RFC 或征求意见是 Internet 工程任务组 (IETF) 的一种出版物,它将 254 个字符定义为限制。位于这里 - https://www.rfc-editor.org/rfc/rfc5321#section-4.5.3
评论
根据以下文章:
https://www.rfc-editor.org/rfc/rfc3696(第 6 页,第 3 节)
它提到:
“有长度限制 电子邮件地址。该限制最多为 64 个字符(八位字节) 在“本地部分”(在“@”之前)中,最多 255 个字符 (八位字节)在域部分(在“@”之后),总长度为 320 字符。处理电子邮件的系统应准备好处理 那么长的地址,即使它们很少 邂逅。
因此,电子邮件地址的最大总长度为 320 个字符 (“本地部分”:64 + “@”:1 + “域部分”:255,总和为 320)
评论
另一个答案有点浑水。简单的答案:我们控制的电子邮件 256 总共有 254 个字符用于整个电子邮件地址,其中包括开头的隐含“<”和结尾的“>”。因此,剩下 254 个供我们使用。
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 个。
可悲的是,所有其他答案都是错误的。他们中的大多数引用了 RFC 2821 或更高版本,它甚至没有定义电子邮件地址。它所做的是定义路径。电子邮件地址由 RFC 2822(或更高版本)定义,并且可以更长。非有效路径的有效地址示例如下:
(Firstname Lastname) user@domain
Firstname Lastname <user@domain>
这两个邮箱是同一个邮箱,写法不同。因此,如果您的目标是将电子邮件地址存储在数据库中,那么 254、256 或 320 个八位字节的限制可能太低,尽管在实践中,这很少会成为问题。
评论
address
name-addr
angle-addr
addr-spec
评论
Sorry, your username must be between 6 and 30 characters long.
user@domain
From:
Sender:
Reply-To:
To:
Cc: