¿Cuál es el límite de longitud del tema del correo electrónico?

¿Cuántos caracteres se permiten en el asunto del correo electrónico de Internet? Hice un escaneo de The RFC por correo electrónico pero no pude ver específicamente cuánto tiempo estuvo permitido. Tengo un colega que quiere validarlo programáticamente.

Si no hay un límite formal, ¿cuál es una buena duración en la práctica para sugerir? Aclamaciones,

Ver RFC 2822 , sección 2.1.1 para comenzar.

Hay dos límites que este estándar establece en la cantidad de caracteres en una línea. Cada línea de caracteres DEBE tener no más de 998 caracteres, y DEBERÍA tener no más de 78 caracteres, excluyendo el CRLF.

Como afirma más adelante el RFC, puede trabajar alrededor de este límite (no debería hacerlo) doblando el tema en múltiples líneas.

Cada campo de encabezado es lógicamente una sola línea de caracteres que comprende el nombre del campo, los dos puntos y el cuerpo del campo. Sin embargo, para su comodidad, y para tratar con las limitaciones de 998/78 caracteres por línea, la parte del cuerpo del campo de un encabezado se puede dividir en una representación de múltiples líneas; esto se llama “plegado”. La regla general es que siempre que este estándar permita doblar el espacio en blanco (no simplemente caracteres WSP), se puede insertar un CRLF antes de cualquier WSP. Por ejemplo, el campo de encabezado:

Subject: This is a test 

puede ser representado como:

  Subject: This is a test 

La recomendación para no más de 78 caracteres en el encabezado del asunto parece razonable. Nadie quiere desplazarse para ver toda la línea de asunto, y algo importante puede cortarse a la derecha.

RFC2322 establece que el encabezado del asunto “no tiene restricción de longitud”

pero para producir encabezados largos, pero debe dividirlo en varias líneas, un proceso llamado “plegado”.

sujeto se define como “no estructurado” en RFC 5322

Aquí hay algunas citas ([…] indican cosas que omití)

 3.6.5. Informational Fields The informational fields are all optional. The "Subject:" and "Comments:" fields are unstructured fields as defined in section 2.2.1, [...] 2.2.1. Unstructured Header Field Bodies Some field bodies in this specification are defined simply as "unstructured" (which is specified in section 3.2.5 as any printable US-ASCII characters plus white space characters) with no further restrictions. These are referred to as unstructured field bodies. Semantically, unstructured field bodies are simply to be treated as a single line of characters with no further processing (except for "folding" and "unfolding" as described in section 2.2.3). 2.2.3 [...] An unfolded header field has no length restriction and therefore may be indeterminately long. 

después de alguna prueba: si envía un correo electrónico a un cliente de Outlook, y el tema es> 77 caracteres, y necesita usar "=?ISO" dentro del tema (en mi caso debido a acentos), entonces OutLook “cortará” el sujeto en el medio y engrane todo lo que viene después, incluido el texto del cuerpo, los archivos adjuntos, etc. ¡toda una malla!

Tengo varios ejemplos como este:

 Subject: =?ISO-8859-1?Q?Actas de la obra N=BA.20100154 (Expediente N=BA.20100182) "NUEVA RED FERROVIARIA.= TRAMO=20BEASAIN=20OESTE(Pedido=20PC10/00123-125),=20BEASAIN".?= 

A:

Como puede ver, en la línea de asunto se cortó en la char 78 con un “=” seguido de 2 o 3 alimentaciones de línea, luego continuó con el rest del tema mal.

Me lo informaron varios clientes que usan OutLook, otros clientes de correo electrónico tratan bien estos temas.

Si no tienes ISO, no duele, pero si lo agregas a tu tema para ser amable con RFC, entonces obtienes esta sorpresa de OutLook. Poco si no agrega los ISO, entonces el correo electrónico de iPhone no lo entenderá (y adjuntar archivos con nombres usando dichos caracteres no funcionará en iPhones).

No creo que haya un límite formal aquí, y estoy bastante seguro de que tampoco hay ningún límite estricto especificado en el RFC, como descubriste.

Creo que algunas limitaciones bastante comunes para las líneas de asunto en general (no solo el correo electrónico) son:

  • 80 personajes
  • 128 personajes
  • 256 personajes

Obviamente, quieres encontrar algo que sea razonable. Si está escribiendo un cliente de correo electrónico, es posible que desee usar 256 caracteres, y obviamente, realice pruebas exhaustivas en servidores comerciales grandes para asegurarse de que publican correctamente su correo.

¡Espero que esto ayude!