Какова максимальная длина действующего адреса электронной почты?

988

Какова максимальная длина действующего адреса электронной почты? Это определяется каким-либо стандартом?

volatilevoid
источник
Какой адрес электронной почты? Интернет, Х.400 или другое?
Тоби Спейт
Обратите внимание, что ограничение длины, которое ваше приложение должно устанавливать для адресов электронной почты, может не совпадать с теоретическим максимумом (который длиннее всего этого комментария ). Другие ответы обсуждают этот вопрос, например: stackoverflow.com/questions/1297272
MGOwen

Ответы:

1207

Адрес электронной почты не должен превышать 254 символа.

Это было принято IETF после представленной ошибки . Полная диагностика любого адреса доступна онлайн . Первоначальная версия RFC 3696 описывала 320 как максимальную длину, но впоследствии Джон Кленсин принял неверное значение, поскольку путь определен как

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 в конечном итоге оказывается очень бесполезным.
Доминик Сэйерс
3
Я считаю, что с интернационализированными адресами электронной почты было бы правильнее определить ограничение в 254 октета , а не в символах. Но я не уверен. RFC 6531 расширяет обратный и прямой тракты RFC 5321 для разрешения символов UTF-8, но RFC 5321, в частности, говорит, что ограничение составляет «256 октетов», включая разделители (преднамеренное изменение по сравнению с RFC 2821, в котором говорится «символы»). Я полагаю, что ограничение в 256 октетов (минус 2 для 254) не заменяется, а ограничение эффективных символов уменьшается для адресов с многобайтовыми символами UTF-8.
Андре Д
1
@JohnLBevan, потому что домены используются для других целей помимо электронной почты и определяются различными RFC. Я уверен, что Джон Постел хотел, чтобы он мог сделать его более согласованным, но в то время, когда большинство доменов были очень короткими, и было бы излишним разбивать адреса конвертов на два или более пакетов, чтобы просто учесть потенциал для очень длинного домена. имена.
Доминик Сэйерс
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 символов. " Хм.
Натан,
8
Вот прекрасная статья, развеивающая различные мифы об электронной почте, включая «max len == 320». Предел на самом деле 254.
Карл
26
Где прекрасная статья?
Боб
1
Этот ответ правильный. Это письмо действительно, но абсолютно непригодно для использования, потому что 2821 ограничивают команды MAIL / RCPT до 256 с помощью <>скобок ...
vp_arth
1
Это включает в себя электронные письма в формате user+inbox@domain?
Аарон Исав
20

пользователь

Максимальная общая длина имени пользователя составляет 64 символа.

домен

Максимум 255 символов в доменной части (один после «@»)

Однако в RFC 2821 есть ограничение :

Максимальная общая длина обратного или прямого пути составляет 256 символов, включая знаки пунктуации и разделители элементов ». Поскольку адреса, которые не вписываются в эти поля, обычно бесполезны, верхний предел длины адресов обычно следует считать равным 256, но путь определяется как: Path = «<» [Adl «:»] Почтовый ящик «> «Прямой путь будет содержать как минимум пару угловых скобок в дополнение к почтовому ящику, который ограничивает адрес электронной почты 254 символами.

Артем Ковалов
источник
7
Прохладный, древний RFC 1982 года ... Для SMTP есть rfc5321
vp_arth
14

Чтобы помочь таким запутанным новобранцам, как я, ответьте на вопрос «Какова максимальная длина действующего адреса электронной почты?» составляет 254 символов .

Если в вашем приложении используется электронная почта, просто установите в своем поле значение 254 символа или менее, и все готово.

Вы можете выполнить несколько тестов по электронной почте, чтобы проверить, действительно ли это здесь. http://isemail.info/

RFC, или Запрос на комментарии - это тип публикации от Инженерной рабочей группы по Интернету (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 символов (октетов) в« локальной части »(до« @ ») и не более 255 символов (октетов) в доменной части (после «@») общей длиной 320 символов. Системы, обрабатывающие электронную почту, должны быть готовы обрабатывать адреса такого длинного размера, даже если они встречаются редко ».

Таким образом, максимальная общая длина адреса электронной почты составляет 320 символов («локальная часть»: 64 + «@»: 1 + «доменная часть»: 255, что составляет 320).

Waqar UlHaq
источник
Не могли бы вы предоставить мне регулярное выражение в javascript для проверки идентификатора электронной почты 320 символов? Заранее спасибо.
Kamlesh
1
Эта часть стандарта была исправлена ​​с ошибками, чтобы включить общее ограничение в 254 символа. См. Принятый ответ для деталей и ссылок на опечатки.
Маттис Коойман