Максимально возможная длина email адреса

Максимально возможная длина email адреса

Какова максимальная длина email адреса? — такой вопрос встречается довольно часто на форумах программистов. На самом деле не так легко дать ответ на этот вопрос. Если интересна просто цифра — листайте в конец статьи. Далее по тексту будут рассуждения откуда мы получаем эту конечную цифру со ссылками на различные стандарты и протоколы.

Обратимся к действующему стандарту:

RFC 821 SIMPLE MAIL TRANSFER PROTOCOL

4.5.3. SIZES

There are several objects that have required minimum maximum sizes. That is, every implementation must be able to receive objects of at least these sizes, but must not send objects larger than these sizes.

****************************************************

* *

* TO THE MAXIMUM EXTENT POSSIBLE, IMPLEMENTATION *

* TECHNIQUES WHICH IMPOSE NO LIMITS ON THE LENGTH *

* OF THESE OBJECTS SHOULD BE USED. *

* *

****************************************************

user

The maximum total length of a user name is 64 characters.

domain

The maximum total length of a domain name or number is 64

characters.

Максимальная длина имени юзера 64 знака.
Максимальная длина доменного имени 64 знака.
Также добавляем сюда @ и получается вот такое выражение:
64 + @ + 64 = 129

Значит максимальная длина email адреса — 129 символов? А вот и нет.

Заглянем в стандарт для доменных имен RFC 1035 Domain names — implementation and specification:

2.3.4. Size limits

Various objects and parameters in the DNS have size limits. They are listed below. Some could be easily changed, others are more fundamental.

labels 63 octets or less

names 255 octets or less

Тут мы получаем максимальную длину между разделительными точками в 63 байта и ограничение на всю длину домена вместе с поддоменами и разделительными точками в 255 байтов. Но это еще не количество символов. В различных кодировках под один символ может использоваться несколько бит, поэтому подсчет был упрощен и регистраторы доменных имен не разрешают регистрировать доменные имена длиннее 63 символов.

Отсюда мы получаем ограничение в 63 символа между разделительными точками. И ограничение в 255 символов на всю длину доменного имени с поддоменами и разделительными точками включительно.

Окончательно выражение у нас будет выглядеть вот так:
64 + @ + 255 = 320

Стало быть максимальная длина email адреса согласно стандартам RFC составляет 320 символов.

На нее можно ориентироваться при проверке валидности email адресов.