volatilevoid
volatilevoid

Reputation: 13193

What is the maximum length of a valid email address?

What is the maximum length of a valid email address? Is it defined by any standard?

Upvotes: 1261

Views: 554491

Answers (8)

Dominic Sayers
Dominic Sayers

Reputation: 1793

TL;DR

👉 An email address must not exceed 254 characters.
This was accepted by the IETF following the submitted erratum for RFC 3696.


Technical details

The question of the maximum allowed email address length was supposed to be addressed in RFC 3696 "Application Techniques for Checking and Transformation of Names", specifically in the Section 3 "Restrictions on email addresses".

The original version of RFC 3696 described 320 characters as the maximum length (see Section 3), but John Klensin subsequently submitted the erratum 1003 to change this value to 256 characters.

But this also was not precisely correct. And this situation was finally fixed after Dominic Sayers submitted the erratum 1690. In this erratum it was noted that the Mailbox element, i.e. the email address, has the maximum length of 👉 254 characters. Here is the quote of the "Note" left in this erratum:

I believe erratum ID 1003 is slightly wrong. RFC 2821 places a 256 character limit on the forward-path. But a path is defined as

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

So the forward-path will contain at least a pair of angle brackets in addition to the Mailbox. This limits the Mailbox (i.e. the email address) to 254 characters.

Aside from RFC 3696, the maximum length of the Path element is also specified in RFC 5321, specifically in the Section 4.5.3.1.3:

The maximum total length of a reverse-path or forward-path is 256 characters.


NOTE: the below section was left by the original author of this answer.

People should be aware of the errata against RFC 3696 in particular. Three of the canonical examples are in fact invalid addresses.

I've collated a couple hundred test addresses, which you can find at http://www.dominicsayers.com/isemail

Upvotes: 1501

Artem Kovalov
Artem Kovalov

Reputation: 1202

RFC 2821 specifies:

local-part

The maximum total length of a user name or other local-part is 64 characters.

domain

The maximum total length of a domain name or number is 255 characters.

However, there is a further restriction reading:

path

The maximum total length of a reverse-path or forward-path is 256 characters (including the punctuation and element separators).

As Dominic Sayers explains in his verified and accepted erratum on RFC 3696:

RFC 2821 places a 256 character limit on the forward-path. But a path is defined as

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

So the forward-path will contain at least a pair of angle brackets in addition to the Mailbox. This limits the Mailbox (i.e. the email address) to 254 characters.

Upvotes: 41

Bob
Bob

Reputation: 99674

320

And the segments look like this

{64}@{255}

64 + 1 + 255 = 320

You should also read this if you are validating emails: I Knew How To Validate An Email Address Until I Read The RFC

Upvotes: 77

HoldOffHunger
HoldOffHunger

Reputation: 20851

TLDR Answer

Given an email address like...

[email protected]

The length limits are as follows:

  • Entire Email Address (aka: "The Path"): i.e., [email protected] -- 256 characters maximum.
  • Local-Part: i.e., me -- 64 character maximum.
  • Domain: i.e., example.com -- 254 characters maximum.

Source — TLDR;

The RFC standards are constantly evolving, but if you want a 2009 IETF source in a single line:

...the upper limit on address lengths should normally be considered to be 256. (Source: RFC3696.)

Source — The History

SMTP originally defined what a path was in RFC821, published August 1982, which is an official Internet Standard (most RFC's are only proposals). To quote it...

...a reverse-path, specifies who the mail is from.

...a forward-path, which specifies who the mail is to.

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.

To quote RFC2821, the modern, accepted standard as confirmed in RFC5321...

4.5.3.1.1. Local-part

The maximum total length of a user name or other local-part is 64 characters.

4.5.3.1.2. Domain

The maximum total length of a domain name or number is 255 characters.

4.5.3.1.3. Path

The maximum total length of a reverse-path or forward-path is 256 characters (including the punctuation and element separators).

You'll notice that I indicate a domain maximum of 254 and the RFC indicates a domain maximum of 255. It's a matter of simple arithmetic. A 255-character domain, plus the "@" sign, is a 256-character path, which is the max path length. An empty or blank name is invalid, though, so the domain actually has a maximum of 254.

Upvotes: 12

Remember Monica
Remember Monica

Reputation: 3939

Sadly, all the other answers are wrong. Most of them cite RFC 2821 or newer, which does not even define e-mail addresses. What it does do is define paths. E-mail addresses are defined by RFC 2822 (or newer) and can be much longer. Examples of valid addresses that are not valid paths are:

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

Both of these are the same mailbox written differently. So if your goal is to store e-mail addresses in a database, a limit of 254, 256 or 320 octets might be too low, although in practise, this is rarely going to be a problem.

Upvotes: 0

Waqar UlHaq
Waqar UlHaq

Reputation: 6422

According to the below article:

https://www.rfc-editor.org/rfc/rfc3696 (Page 6, Section 3)

It's mentioned that:

"There is a length limit on email addresses. That limit is a maximum of 64 characters (octets) in the "local part" (before the "@") and a maximum of 255 characters (octets) in the domain part (after the "@") for a total length of 320 characters. Systems that handle email should be prepared to process addresses which are that long, even though they are rarely encountered."

So, the maximum total length for an email address is 320 characters ("local part": 64 + "@": 1 + "domain part": 255 which sums to 320)

Upvotes: 28

Forrest
Forrest

Reputation: 3490

The other answers muddy the water a bit. Simple answer: 254 total chars in our control for email 256 are for the ENTIRE email address, which includes implied "<" at the beginning, and ">" at the end. Therefore, 254 are left over for our use.

Upvotes: 22

Joshua Dance
Joshua Dance

Reputation: 10472

To help the confused rookies like me, the answer to "What is the maximum length of a valid email address?" is 254 characters.

If your application uses an email, just set your field to accept 254 characters or less and you are good to go.

You can run a bunch of tests on an email to see if it is valid here. http://isemail.info/

The RFC, or Request for Comments is a type of publication from the Internet Engineering Task Force (IETF) that defines 254 characters as the limit. Located here - https://www.rfc-editor.org/rfc/rfc5321#section-4.5.3

Upvotes: 28

Related Questions