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


986

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


什么样的电子邮件地址?Internet,X.400或其他?
Toby Speight '18

需要注意的是长度限制您的应用程序应该征收的电子邮件地址可能相同的理论最大值(这是长于这整个评论)。其他答案讨论了该问题,例如:stackoverflow.com/questions/1297272
MGOwen18年

Answers:


1205

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

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

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

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

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

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

RFC 3696已在此处更正。

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

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


7
新的RFC标准允许在电子邮件地址中使用Unicode呢?
Pacerier

3
@前面有多少个字符,后面有多少个,还是没关系?
systemovich

5
@Lodewijk RFC 3696不是标准,它只是试图帮助人们正确地解释底层标准。不幸的是,在试图澄清这种情况时,克兰辛包括了一些严重的错误,这些错误在勘误表中已得到纠正。但是没有人阅读勘误表,因此具有讽刺意味的是,RFC 3693最终变得非常无用。
Dominic Sayers

2
我相信使用国际化的电子邮件地址,将限制定义为254 个八位位组(而不是字符)会更正确。但是我不确定。RFC 6531扩展了RFC 5321的反向和正向路径以允许使用UTF-8字符,但是RFC 5321特别指出了限制是“ 256个八位字节”,包括分隔符(与RFC 2821的故意更改(表示“字符”))。我相信不会取代256个八位字节的限制(对于254,减去2),并且对于具有多字节UTF-8字符的地址,有效字符限制会降低。
安德烈D

1
@JohnLBevan,因为域除了电子邮件外还用于其他目的,并且由不同的RFC定义。我确定乔恩·波斯特尔(Jon Postel)希望他能使其变得更加一致,但在当时大多数域都非常短的情况下,仅仅考虑到很长域的潜力,将信封地址分成两个或多个数据包就太过费力了。名称。
Dominic Sayers

38

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


但是,根据此规范(用于学生贷款数据),nchelp.org / elibrary / ESC / CommonRecord - CommonLineDocumentation / …第20页:“电子邮件长度已更改为反映当前ANSI标准。电子邮件地址为最大长度128个字符。” 嗯
内森2009年

8
这是一篇可爱的文章,消除了有关电子邮件的各种神话,包括“ max len == 320”。限制实际上是254。–
卡尔

26
可爱的文章在哪里?
鲍勃”

1
这个答案正确。这封电子邮件有效,但绝对无法使用,因为2821将MAIL / RCPT命令限制为256,并带有<>方括号...
vp_arth 2015年

1
那包括格式的电子邮件user+inbox@domain吗?
亚伦·

20

用户

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

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

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

反向路径或正向路径的最大总长度为256个字符,包括标点和元素分隔符。” 由于不适合这些字段的地址通常没有用,因此通常应将地址长度的上限视为256,但将路径定义为:Path =“ <” [Adl“:”]邮箱“> ”除了邮箱(邮箱)外,转发路径还将至少包含一对尖括号,它将电子邮件地址限制为254个字符。


7
很酷,古老的1982年的RFC ...有SMTP的
RFC5321

14

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

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

您可以对电子邮件进行一系列测试,以查看此处是否有效。http://isemail.info/

RFC(即征求意见书)是Internet工程任务组(IETF)的一种发布类型,它定义了254个字符为限制。位于此处-https://tools.ietf.org/html/rfc5321#section-4.5.3


12

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


4

根据下面的文章:

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

提到的是:

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

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


您能在JavaScript中提供正则表达式来验证320个字符的电子邮件ID吗?提前致谢。
Kamlesh

1
标准的此部分已在勘误表中进行了修改,以包括总共254个字符的限制。有关详细信息和勘误表,请参见已接受的答案。
Matthijs Kooijman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.