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

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


person volatilevoid    schedule 22.12.2008    source источник
comment
Какой адрес электронной почты? Интернет, X.400 или другое?   -  person Toby Speight    schedule 19.02.2018
comment
Обратите внимание, что ограничение длины, которое ваше приложение должно устанавливать для адресов электронной почты, может не совпадать с теоретическим максимумом (который больше, чем весь этот комментарий). В других ответах обсуждается этот вопрос, например: stackoverflow.com/questions/1297272   -  person MGOwen    schedule 07.06.2018


Ответы (8)


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

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

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

Таким образом, элемент почтового ящика (то есть адрес электронной почты) заключен в угловые скобки для формирования пути, максимальная длина которого составляет 254 символа, чтобы ограничить длину пути 256 символами или меньше.

Максимальная длина, указанная в RFC 5321, гласит:

Максимальная общая длина обратного или прямого пути составляет 256 символов.

RFC 3696 был исправлен здесь.

Люди должны знать, в частности, об ошибках RFC 3696. Три канонических примера на самом деле являются недействительными адресами.

Я сопоставил пару сотен тестовых адресов, которые вы можете найти по адресу http://www.dominicsayers.com/isemail < / а>

person Community    schedule 22.02.2009
comment
А как насчет нового стандарта RFC, который позволяет использовать Unicode в адресах электронной почты? - person Pacerier; 11.07.2012
comment
Новые RFC не меняют того факта, что SMTP накладывает это ограничение на конверт. Они были разработаны для обратной совместимости с существующим программным обеспечением MTA. - person Dominic Sayers; 17.07.2012
comment
Сколько символов до @ и сколько после, или это не имеет значения? - person Geoffrey; 21.04.2013
comment
Что делать, если SMTP заменен? Означает ли это, что мы технически неспособны реализовать стандарт в RFC 3696? 254 на практике, 320 на будущее? В любом случае собираюсь с 254 :) - person Lodewijk; 07.02.2014
comment
@Lodewijk RFC 3696 не является стандартом, он просто пытается помочь людям правильно интерпретировать базовые стандарты. К сожалению, пытаясь прояснить ситуацию, Кленсин допустил несколько грубых ошибок, которые были исправлены в опечатках. Но никто не читает опечатки, поэтому RFC 3693, по иронии судьбы, оказывается очень бесполезным. - person Dominic Sayers; 12.02.2014
comment
Удачи вам распечатать 254 символа в одной строке PDF-документа. - person doABarrelRoll721; 05.01.2016
comment
Я считаю, что для интернационализированных адресов электронной почты было бы правильнее определить ограничение как 254 октета, а не символов. Но я не уверен. RFC 6531 расширяет обратный и прямой путь RFC 5321, чтобы разрешить символы UTF-8, но RFC 5321 конкретно говорит, что ограничение составляет 256 октетов, включая разделители (преднамеренное изменение от RFC 2821, в котором были упомянуты символы). Я считаю, что ограничение в 256 октетов (минус 2 для 254) не отменяется, а эффективный предел символа уменьшается для адресов с многобайтовыми символами UTF-8. - person Andre D; 06.05.2016
comment
Включает ли это электронные письма в формате user+inbox@domain? - person Aaron Esau; 09.01.2017
comment
@ Арин: да, это так - person Dominic Sayers; 09.01.2017
comment
Кто-нибудь еще сбит с толку, почему предел для домена (255) больше, чем предел для полного адреса (254)? Есть ли оправдание (или хотя бы объяснение) такому сценарию? - person JohnLBevan; 28.07.2017
comment
@JohnLBevan, потому что домены используются не только для электронной почты, но и для других целей и определены разными RFC. Я уверен, что Джон Постел хотел бы сделать его более последовательным, но в то время большинство доменов были очень короткими, и было бы излишним разбивать адреса конверта на два или более пакетов, просто чтобы учесть потенциал очень длинного домена. имена. - person Dominic Sayers; 07.08.2017
comment
Я наткнулся на ту же проблему, что и @AndreD, и я согласен с ним. С другой стороны, на сайте dominicsayers.com/isemail по-прежнему указано 254 символа. Кто-нибудь знает больше? Я считаю, что это октеты, а не символы, но это означало бы, что теоретически максимальное количество символов может составлять 63. Я не могу поверить, что новый RFC 6531 не решает эту проблему, поэтому я не уверен. - person Binarus; 01.11.2017
comment
Должен ли я волноваться, когда я найду того психа, у которого в электронном письме 254 символа? Хочу ли я, чтобы такой человек пользовался моими услугами? - person Steven Eckhoff; 04.05.2020
comment
@Geoffrey, ошибка, указанная в ответе выше, отвечает на ваш вопрос: максимум 64 символа (октета) в локальной части (до @) и максимум 255 символов (октетов) в части домена (после @) для общая длина 320 символов. Однако в RFC 2821 есть ограничение на длину адреса в командах MAIL и RCPT в 256 символов. Таким образом, максимум 64 октета перед @, максимум 255 после @, НО с общим пределом 254 октета, включая @. - person Brendan Quinn; 09.04.2021

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

person Bob    schedule 22.12.2008
comment
Однако согласно этой спецификации (для данных о студенческих ссудах) nchelp.org/elibrary/ESC/CommonRecord-CommonLineDocumentation/ на странице 20. Длина электронного письма изменена в соответствии с текущими стандартами ANSI. Адрес электронной почты - это максимальная длина 128 символов. Хм. - person Nathan; 19.05.2009
comment
Можете ли вы сослаться на какой RFC вы это взяли? - person Nathan; 19.05.2009
comment
Вот прекрасная статья, развенчивающая различные мифы об электронной почте, включая max len == 320. На самом деле ограничение составляет 254. - person Carl; 23.07.2009
comment
Где прекрасная статья? - person Bob; 23.07.2009
comment
Это правильный ответ. Эти электронные письма действительны, но абсолютно непригодны для использования, потому что 2821 ограничивает команды MAIL / RCPT до 256 с <> скобками ... - person vp_arth; 05.07.2015
comment
Включает ли это электронные письма в формате user+inbox@domain? - person Aaron Esau; 09.01.2017
comment
Часть "пользователь + входящие" по-прежнему должна умещаться в 64 символа. Это все еще локальная часть, и знак «+» не добавляет к ней никакого волшебства. - person Sperry; 11.02.2020
comment
В этом ответе отсутствуют ссылки. Вероятно, это происходит из RFC3696, но в эту часть стандарта были внесены исправления, чтобы включить общий лимит в 254 символа. См. В принятом ответе подробные сведения и ссылки на исправления. - person Matthijs Kooijman; 13.03.2020

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

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

домен

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

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

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

person Artem Kovalov    schedule 29.01.2015
comment
Прикольный, древний rfc 1982 года ... Есть rfc5321 для SMTP - person vp_arth; 05.07.2015

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

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

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

RFC или запрос комментариев - это тип публикации от Инженерной группы Интернета (IETF), который определяет 254 символа в качестве ограничения. Находится здесь - https://tools.ietf.org/html/rfc5321#section-4.5.3

person Joshua Dance    schedule 01.06.2017
comment
Где вы читаете 254 символа? Я вижу в предоставленной вами ссылке: максимальная общая длина обратного или прямого пути - 256. Ctrl + F на 254 также ничего не находит. - person HoldOffHunger; 09.07.2021

Согласно статье ниже:

http://tools.ietf.org/html/rfc3696 (стр. 6, Раздел 3)

Упоминается, что:

Для адресов электронной почты существует ограничение на длину. Это ограничение составляет максимум 64 символа (октета) в локальной части (до @) и максимум 255 символов (октетов) в доменной части (после @) для общей длины 320 символов. Системы, обрабатывающие электронную почту, должны быть готовы обрабатывать такие длинные адреса, даже если они редко встречаются.

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

person Waqar UlHaq    schedule 04.04.2018
comment
не могли бы вы предоставить мне регулярное выражение в javascript для проверки идентификатора электронной почты из 320 символов? Заранее спасибо. - person Kamlesh; 19.09.2019
comment
В эту часть стандарта были внесены исправления, в которые было внесено ограничение на 254 символа. См. В принятом ответе подробные сведения и ссылки на исправления. - person Matthijs Kooijman; 13.03.2020
comment
Фактически он находится на странице 4, Раздел 3 (Ограничения по адресам электронной почты) tools.ietf.org / html / rfc3696 # section-3 - person NeoH4x0r; 14.10.2020

Другие ответы немного мутят воду. Простой ответ: мы контролируем 254 символа для электронной почты. 256 для ВСЕГО адреса электронной почты, включая подразумеваемые «‹ »в начале и«> »в конце. Таким образом, 254 осталось для нашего использования.

person Forrest    schedule 12.04.2018

К сожалению, все остальные ответы неверны. Большинство из них ссылаются на RFC 2821 или новее, в котором даже не определены адреса электронной почты. Он определяет пути. Адреса электронной почты определены RFC 2822 (или новее) и могут быть намного длиннее. Примеры действительных адресов, которые не являются допустимыми путями:

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

Оба это один и тот же почтовый ящик, написанный по-разному. Поэтому, если ваша цель - сохранить адреса электронной почты в базе данных, ограничение в 254, 256 или 320 октетов может быть слишком низким, хотя на практике это редко будет проблемой.

person Remember Monica    schedule 06.05.2021

Ответ TLDR

Учитывая адрес электронной почты, например ...

[email protected]

Пределы длины следующие:

  • Полный адрес электронной почты (также известный как путь): т. Е. [email protected] - максимум 256 символа.
  • Локальная часть: т. Е. я - максимум 64 символа.
  • Домен: т. Е. example.com - максимум 254 символа.

Исходный TL; DR;

Стандарты RFC постоянно развиваются, но если вам нужен исходный текст IETF 2009 в одной строке:

... верхний предел длины адреса обычно считается равным 256. (Источник: RFC3696.)

Источник История

Первоначально SMTP определял путь в RFC821, опубликованном в августе 1982 г., т.е. официальный Интернет-стандарт (большинство RFC - это только предложения). Процитировать это ...

... обратный путь, указывающий, от кого пришло письмо.

... прямой путь, который указывает, кому адресована почта.

RFC2821, опубликованный в апреле 2001 г., является устаревшим стандартом, определяющим наши текущие максимальные значения для локальных части, домены и пути. Новый проект стандарта, RFC5321, опубликованный в октябре 2008 г., сохраняет те же ограничения. Между этими двумя датами, февраль 2004 г. был опубликован RFC3696. В нем ошибочно указан максимальный адрес электронной почты. ограничение адреса в виде 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.

person HoldOffHunger    schedule 13.02.2021