¿Cuál es la longitud máxima de una dirección de correo electrónico válida?

988

¿Cuál es la longitud máxima de una dirección de correo electrónico válida? ¿Está definido por algún estándar?

volátil
fuente
¿Qué tipo de dirección de correo electrónico? Internet, X.400 u otro?
Toby Speight
Tenga en cuenta que el límite de longitud que debe imponer su aplicación para las direcciones de correo electrónico puede no ser el mismo que el máximo teórico (que es más largo que todo este comentario ). Otras respuestas discuten esa pregunta, por ejemplo: stackoverflow.com/questions/1297272
MGOwen

Respuestas:

1207

Una dirección de correo electrónico no debe exceder los 254 caracteres.

Esto fue aceptado por el IETF después de la errata presentada . Un diagnóstico completo de cualquier dirección está disponible en línea . La versión original de RFC 3696 describió 320 como la longitud máxima, pero John Klensin aceptó posteriormente un valor incorrecto, ya que una ruta se define como

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

Por lo tanto, el elemento del buzón (es decir, la dirección de correo electrónico) tiene corchetes angulares a su alrededor para formar una ruta, que tiene una longitud máxima de 254 caracteres para restringir la longitud de la ruta a 256 caracteres o menos.

La longitud máxima especificada en RFC 5321 establece:

La longitud total máxima de una ruta inversa o ruta directa es de 256 caracteres.

RFC 3696 fue corregido aquí .

La gente debe estar al tanto de la errata contra RFC 3696 en particular. Tres de los ejemplos canónicos son, de hecho, direcciones no válidas.

He recopilado un par de cientos de direcciones de prueba, que puede encontrar en http://www.dominicsayers.com/isemail

Dominic Sayers
fuente
77
¿Qué pasa con el nuevo estándar RFC que permite Unicode en las direcciones de correo electrónico?
Pacerier
3
¿Cuántos caracteres antes de la @ y cuántos después, o no importa?
systemovich
55
@Lodewijk RFC 3696 no es un estándar, solo trata de ayudar a las personas a interpretar los estándares subyacentes correctamente. Desafortunadamente, en su intento de aclarar la situación, Klensin incluyó algunos errores graves que fueron corregidos en la Errata. Pero nadie lee la errata, por lo que RFC 3693 termina siendo muy inútil, irónicamente.
Dominic Sayers
3
Creo que con las direcciones de correo electrónico internacionalizadas, sería más correcto definir el límite como 254 octetos , no como caracteres. Pero no estoy seguro. RFC 6531 extiende la ruta inversa y directa RFC 5321 para permitir caracteres UTF-8, pero RFC 5321 dice específicamente que el límite es "256 octetos", incluidos los separadores (un cambio deliberado de RFC 2821 que decía "caracteres"). Creo que el límite de 256 octetos (menos 2 para 254) no se reemplaza, y el límite de caracteres efectivo se reduce para las direcciones con caracteres UTF-8 de varios bytes.
Andre D
1
@JohnLBevan porque los dominios se utilizan para otros fines además de los correos electrónicos y están definidos por diferentes RFC. Estoy seguro de que Jon Postel deseaba poder hacerlo más consistente, pero en ese momento la mayoría de los dominios eran muy cortos y habría sido excesivo dividir las direcciones de los sobres en dos o más paquetes simplemente para tener en cuenta el potencial de un dominio muy largo. nombres
Dominic Sayers
38

320

Y los segmentos se ven así

{64} @ {255}

64 + 1 + 255 = 320

También debe leer esto si está validando correos electrónicos

http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx

Beto
fuente
Sin embargo, de acuerdo con esta especificación (para datos de préstamos estudiantiles) nchelp.org/elibrary/ESC/CommonRecord-CommonLineDocumentation/… en la página 20: "La longitud del correo electrónico cambió para reflejar los estándares ANSI actuales. La dirección de correo electrónico es una longitud máxima de 128 caracteres ". Hmm
Nathan
8
Aquí hay un artículo encantador que disipa varios mitos sobre el correo electrónico, incluido "max len == 320". El límite es en realidad 254.
Carl
26
¿Dónde está el hermoso artículo?
Bob
1
Esta respuesta correcta. Estos correos electrónicos son válidos, pero absolutamente inutilizables, porque 2821 restringe los comandos MAIL / RCPT a 256 con <>paréntesis ...
vp_arth
1
¿Eso incluye correos electrónicos en el formato user+inbox@domain?
Aaron Esau
20

usuario

La longitud total máxima de un nombre de usuario es de 64 caracteres.

dominio

Máximo de 255 caracteres en la parte del dominio (el que está después de la "@")

Sin embargo, hay una restricción en la lectura de RFC 2821 :

La longitud total máxima de una ruta inversa o una ruta directa es de 256 caracteres, incluidos la puntuación y los separadores de elementos ". Dado que las direcciones que no caben en esos campos normalmente no son útiles, el límite superior de las longitudes de las direcciones normalmente debe considerarse 256, pero una ruta se define como: Ruta = "<" [Adl ":"] Buzón "> "La ruta de avance contendrá al menos un par de corchetes angulares además del Buzón, que limita la dirección de correo electrónico a 254 caracteres.

Artem Kovalov
fuente
77
Genial, antiguo rfc de 1982 ... Hay rfc5321 para SMTP
vp_arth
14

Para ayudar a los novatos confundidos como yo, la respuesta a "¿Cuál es la longitud máxima de una dirección de correo electrónico válida?" tiene 254 caracteres .

Si su aplicación usa un correo electrónico, simplemente configure su campo para aceptar 254 caracteres o menos y estará listo.

Puede ejecutar un montón de pruebas en un correo electrónico para ver si es válido aquí. http://isemail.info/

El RFC, o Solicitud de comentarios, es un tipo de publicación del Internet Engineering Task Force (IETF) que define 254 caracteres como límite. Ubicado aquí: https://tools.ietf.org/html/rfc5321#section-4.5.3

Joshua Dance
fuente
12

El otro contesta un poco el agua turbia. Respuesta simple: 254 caracteres totales en nuestro control para el correo electrónico 256 son para la dirección de correo electrónico COMPLETA, que incluye "<" implícito al principio y ">" al final. Por lo tanto, quedan 254 para nuestro uso.

Para descanso
fuente
4

De acuerdo con el siguiente artículo:

http://tools.ietf.org/html/rfc3696 (Página 6, Sección 3)

Se menciona que:

"Hay un límite de longitud en las direcciones de correo electrónico. Ese límite es un máximo de 64 caracteres (octetos) en la" parte local "(antes de la" @ ") y un máximo de 255 caracteres (octetos) en la parte del dominio (después del "@") para una longitud total de 320 caracteres. Los sistemas que manejan el correo electrónico deben estar preparados para procesar direcciones que son tan largas, aunque rara vez se encuentran ".

Por lo tanto, la longitud total máxima para una dirección de correo electrónico es de 320 caracteres ("parte local": 64 + "@": 1 + "parte de dominio": 255 que suma 320)

Waqar UlHaq
fuente
¿podría proporcionarme una expresión regular en JavaScript para validar la identificación de correo electrónico de 320 caracteres? Gracias por adelantado.
Kamlesh
1
Esta parte de la norma se modificó en las erratas para incluir un límite total de 254 caracteres. Consulte la respuesta aceptada para obtener detalles y enlaces a las erratas.
Matthijs Kooijman