Яка максимальна довжина дійсної електронної адреси?


986

Яка максимальна довжина дійсної електронної адреси? Чи визначено це будь-яким стандартом?


Яка адреса електронної пошти? Інтернет, X.400 чи інше?
Toby Speight

Зауважте, що обмеження довжини, яке має накласти ваше додаток для адрес електронної пошти, може не збігатися з теоретичним максимумом (який довший за весь цей коментар ). Інші відповіді обговорити це питання, наприклад: stackoverflow.com/questions/1297272
MGOwen

Відповіді:


1205

Адреса електронної пошти не повинна перевищувати 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
Скільки символів до @ і скільки після, або це не має значення?
системович

5
@Lodewijk RFC 3696 не є стандартом, він просто намагається допомогти людям правильно інтерпретувати основні стандарти. На жаль, у своїй спробі з’ясувати ситуацію Кленсін включив деякі грубі помилки, які були виправлені в Еррата. Але ніхто не читає помилки, тому RFC 3693 в кінцевому підсумку виявляється дуже непосидним, іронічно.
Домінік Сайєрс

3
Я вважаю, що з інтернаціоналізованими адресами електронної пошти було б правильніше визначити ліміт як 254 октети , а не символи. Але я не впевнений. RFC 6531 розширює RFC 5321 зворотний і прямий шлях, щоб дозволити символи UTF-8, але RFC 5321 спеціально говорить, що межа - "256 октетів", включаючи роздільники (навмисна зміна від RFC 2821, яка сказала "символи"). Я вважаю, що межа 256 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 року ... Є rfc5321 для SMTP
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)


Ви можете надати мені регулярний вираз у javascript, щоб підтвердити ідентифікатор електронної пошти на 320 символів? Заздалегідь спасибі.
Kamlesh

1
Ця частина стандарту була внесена поправками в Errata, включаючи загальний ліміт у 254 символи. Детальну інформацію та посилання на помилку див. У прийнятій відповіді.
Matthijs Kooijman
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.