← RFC Reference

RFC 2231: Extensiones de Valor de Parámetro MIME

Current Standard MIME — Multipurpose Internet Mail Extensions Published March 2026
ELI5: Los archivos adjuntos de correo electrónico tienen nombres de archivo, y los nombres de archivo pueden contener caracteres no ingleses o ser muy largos. MIME original solo podía manejar valores ASCII simples en encabezados. RFC 2231 añade tres características: soporte para caracteres no ASCII (como nombres de archivo en japonés o árabe), etiquetado de idioma y división de valores largos en múltiples líneas.

Por Qué Existe Esto

Los parámetros MIME aparecen en encabezados como Content-Type y Content-Disposition. El caso de uso más común es el parámetro filename para adjuntos:

Content-Disposition: attachment; filename="report.pdf"

Esto funciona bien para nombres de archivo ASCII. ¿Pero qué hay de un archivo llamado 報告書.pdf (japonés para "informe") o un nombre de archivo con 200 caracteres? La especificación MIME original (RFC 2045) no tenía mecanismo para esto. RFC 2231 resuelve tres problemas:

Cómo Funciona

Codificación de Juego de Caracteres e Idioma

Para incluir caracteres no-ASCII, añade un asterisco al nombre del parámetro y usa el formato charset'language'encoded-value:

Content-Disposition: attachment;
    filename*=UTF-8''%E5%A0%B1%E5%91%8A%E6%9B%B8.pdf
             ^^^^^^^  ^^  ^^^^^^^^^^^^^^^^^^^^^^^^
             juego de caracteres  idioma  valor codificado en porcentaje
                     (vacío = sin etiqueta de idioma)

El valor %E5%A0%B1%E5%91%8A%E6%9B%B8 son los bytes UTF-8 para "報告書" codificados en porcentaje. La etiqueta de idioma entre comillas simples es opcional (a menudo se deja vacía).

Continuaciones para Valores Largos

Cuando un valor de parámetro es demasiado largo para una línea de encabezado única, divídelo usando continuaciones numeradas:

Content-Type: application/pdf;
    filename*0="very-long-document-name-that-exceeds-the";
    filename*1="-reasonable-line-length-limit-for-headers.pdf"

Las partes se reensambian en orden numérico: *0, *1, *2, etc.

Combinado: Continuaciones con Juegos de Caracteres

Para valores no-ASCII largos, combina ambas características. Solo el primer segmento incluye el juego de caracteres e idioma; los segmentos siguientes son solo valores codificados:

Content-Disposition: attachment;
    filename*0*=UTF-8''%E3%81%93%E3%82%8C%E3%81%AF%E9%95%B7;
    filename*1*=%E3%81%84%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB;
    filename*2*=%E5%90%8D.pdf
          ^^^^
          número + asterisco = continuación codificada

Detalles Técnicos Clave

Sintaxis de Nombre de Parámetro

Forma Significado Ejemplo
filename Valor ASCII plano filename="report.pdf"
filename* Valor codificado (charset'lang'value) filename*=UTF-8''%E5%A0%B1.pdf
filename*0 Parte de continuación 0, ASCII plano filename*0="very-long-"
filename*0* Parte de continuación 0, codificada filename*0*=UTF-8''%E5%A0%B1

Reglas de Codificación

Interacción con RFC 2047

RFC 2047 proporciona palabras codificadas (=?UTF-8?B?...?=) para texto no-ASCII en encabezados. Sin embargo, RFC 2047 establece explícitamente que las palabras codificadas NO deben aparecer dentro de cadenas entrecomilladas o valores de parámetros. RFC 2231 es el mecanismo correcto para parámetros MIME. A pesar de esta regla, muchos clientes de correo usan RFC 2047 en parámetros filename de todas formas, por lo que los analizadores robustos deben manejar ambos.

Errores Comunes

Impacto en la Entregabilidad

Related RFCs