Resumen

  • LANGUAGE cambia mensajes legibles y puede entregar una traducción de un prefijo NAMESPACE, pero esa traducción sigue siendo una vista del nombre canónico, no un buzón nuevo.
  • El comparador activo gobierna partes de SEARCH, SORT y THREAD; para explicar un resultado hay que conservar decodificación, conversión, comparador, repliegue y generación de seguridad.

Un menú de idioma puede juntar decisiones que el protocolo separa

Desde la pantalla del usuario, cambiar de idioma parece una preferencia única. Sin embargo, una sesión de correo toma al menos dos decisiones distintas. Una elige cómo se expresan los mensajes humanos. Otra decide qué significa que dos textos coincidan o en qué orden deben aparecer.

RFC 5255 mantiene esas funciones separadas. LANGUAGE se ocupa de respuestas y presentaciones localizadas. I18NLEVEL introduce comparadores para búsqueda, ordenación y agrupación. Un cliente puede implementar una sin la otra, y el servidor las anuncia por separado.

Si la telemetría registra solo “idioma: español”, no puede reconstruir el efecto. Quizá cambió un aviso y nada más. Quizá cambió el prefijo mostrado de una carpeta. Quizá la búsqueda utilizó otro comparador. Quizá la comparación lingüística falló y el servidor terminó mirando octetos.

Traducir el prefijo no traslada el buzón

La autoridad de LANGUAGE es deliberadamente limitada. Cambia cadenas fijas del servidor, incluidos textos de respuesta y representaciones de prefijos NAMESPACE. RFC 5255 deja los alias localizados de buzones compartidos para otro mecanismo.

La extensión TRANSLATION acompaña al prefijo canónico con una cadena adecuada para presentarla al usuario. El cliente debe convertir entre ambas. Por ello, el dato duradero no es la traducción aislada, sino el vínculo entre nombre canónico, presentación, etiqueta de idioma, servidor y generación de sesión.

Si se pierde ese vínculo, una interfaz puede mostrar el mismo buzón como dos objetos al alternar idioma. Un favorito puede apuntar a una etiqueta, una migración puede crear una carpeta duplicada y un sistema de permisos puede registrar el texto visible en lugar del nombre que el servidor entiende.

La respuesta de LANGUAGE también debe interpretarse. Un tag único anuncia la selección activa. Varios tags enumeran idiomas disponibles sin efectuar un cambio. Una petición fallida conserva el idioma anterior. El botón que el usuario pulsó no es prueba de la transición; la respuesta del servidor sí delimita lo que ocurrió.

La opción default tampoco identifica una lengua universal. Pide la preferencia administrativa del servidor y puede depender del usuario. Es política de presentación, no una característica esencial de la cuenta ni una declaración verificable sobre la persona.

El canal protegido invalida la herencia automática

LANGUAGE puede enviarse antes de autenticar. Así, el servidor puede explicar en un idioma útil un problema de contraseña o de seguridad. Pero la selección inicial viaja por una fase expuesta.

Un atacante activo puede eliminar o modificar esa negociación y dificultar la interpretación de STARTTLS o de la autenticación. Por eso RFC 5255 exige repetir LANGUAGE cuando TLS o una capa de seguridad SASL ya está activa.

La repetición crea una nueva generación de autoridad. Una auditoría necesita saber qué elección se hizo antes del canal protegido, cuál se confirmó dentro de él, qué respuesta recibió el cliente y desde qué punto comenzó a aplicarse.

Esto no convierte el lenguaje humano en autenticación. El texto puede ayudar a entender un error, pero no reemplaza el código de protocolo, la validación del servidor o la decisión de acceso. Canal, resultado estructurado y explicación son pruebas distintas.

El comparador es una dependencia ejecutable

Cuando no se negocia otra regla, SEARCH y SORT usan el comparador por defecto. La sesión puede tener un comparador activo distinto. I18NLEVEL=1 exige i;unicode-casemap; I18NLEVEL=2 permite consultar y cambiar la selección mediante COMPARATOR.

El comparador activo se aplica a campos concretos de SEARCH, como asunto, cuerpo, remitente o cabeceras, y a claves relevantes de SORT y THREAD. No reescribe todo el almacén ni establece una equivalencia universal entre cadenas.

Después de autenticar, el comparador por defecto debe permanecer estable durante la conexión. Esa regla impide que una semántica implícita cambie sin límite. Aun así, una orden COMPARATOR explícita modifica la regla activa; el comprobante debe guardar solicitud, coincidencias ofrecidas y selección final.

No todos los comparadores ofrecen todas las operaciones. SEARCH necesita subcadenas. SORT necesita orden y, con él, igualdad. Si falta la operación necesaria, el servidor no debe improvisar una aproximación silenciosa. Debe fallar la orden.

La comparación es el último tramo de una cadena

Antes de aplicar el comparador, el servidor retira codificaciones MIME y convierte el texto al juego de caracteres esperado. La extracción puede fallar; la conversión puede fallar; la entrada puede ser inválida; el comparador puede declarar un resultado indefinido.

Para subcadenas, RFC 5255 recurre a i;octet cuando la conversión no funciona y también en ciertos resultados indefinidos. Para ordenar, separa las cadenas válidas de las fallidas, usa el comparador activo con las primeras y i;octet con las segundas, que aparecen después.

La salida oculta ese doble camino. Dos elementos vecinos pueden haber sido evaluados con reglas diferentes. Una coincidencia puede deberse a bytes iguales, no a una equivalencia lingüística. Un grupo al final puede señalar conversión fallida, no menor relevancia.

Por eso el historial de una consulta debe incluir corpus y servidor, campos, charset, extracción MIME, conversión, validación, comparador solicitado y activo, operación usada, repliegue y conjunto u orden exactos. Conservar solo la cadena de búsqueda elimina la causa.

Los mensajes pueden seguir iguales y la respuesta cambiar

Dos implementaciones pueden soportar distintos charsets y comparadores. Una actualización puede cambiar una biblioteca Unicode. RFC 5255 también deja ciertos fallos de decodificación a la implementación. El mismo almacén puede producir otra lista sin que se haya editado ningún mensaje.

La conclusión no es desconfiar de toda búsqueda, sino hacerla versionable. Ante “el mensaje desapareció”, operaciones debe distinguir ausencia, campo no seleccionado, MIME ilegible, conversión fallida, comparador no disponible, respuesta indefinida y repliegue por octetos.

El registro IANA mantiene LANGUAGE, I18NLEVEL=1 e I18NLEVEL=2 como capacidades referidas a RFC 5255. Esa referencia no mide despliegue ni prueba conformidad en un servidor particular.

RFC 6855 añadió después UTF-8 para nombres de usuario, direcciones, cabeceras y manejo de nombres de buzón; RFC 9051 sustituyó la base IMAP4rev1. La evolución confirma que localizar un texto fijo no equivale a internacionalizar todos los identificadores.

En la disciplina de capas de realidad de Lu Heng, la etiqueta traducida es real como presentación, el prefijo es real como identidad de espacio, la lista es real para una generación de comparación y la seguridad es real para un canal. El error aparece cuando una capa certifica a otra. La práctica correcta conserva el camino reversible desde la vista hasta su nombre y su regla.

Fuentes