MIME (Multipurpose Internet Mail Extensions)
Versión 1.02

Tipos de codificación.

El header Content-Transfer-Encoding identifica el tipo de codificación utilizada en los datos. El sistema SMTP tradicional sólo transporta datos en ASCII de 7 bits y las líneas pueden tener una longitud de hasta 1000 bytes. Para garantizar que los datos generados por MIME pasen a través de gateways que sólo soportan ASCII de 7 bits, los datos puede ser codificados. El RFC1521 define seis tipos de codificación. Algunos tipos son utilizados para identificar la codificación inherente a los datos. Sólo dos de los tipos de codificación presentadas en el RFC son técnicas reales de codificación. Los seis tipos de codificación son:

7bit: Datos en US ASCII. No se hace ningún tipo de codificación sobre los datos en US ASCII.

8bit: Datos en octetos. No se ha realizado ninguna codificación. Los datos son binarios y la longitud de la línea es menor a 1000 bytes de longitud -son transportadas por SMPT sin dificultades-.

binary: Datos binarios. No se realiza ninguna codificación. Los datos son binarios pero la longitud de la línea puede exceder los 1000 bytes. Realmente no hay diferencia entre binary y 8bit exceptuando la longitud de línea; ambos tipos de datos son flujos de bytes (octetos) no codificados. MIME no manipula los datos en flujo de bytes no codificados.

quoted-printable: Datos tipo texto codificados. Esta técnica de codificación manipula datos que están compuestos, en su mayor parte, de texto ASCII para impresión. El texto ASCII es enviado no codificado y aquellos bytes con valores superiores a 127 o menores que 33 son codificados como cadenas construidas con el signo igual ("=") seguido por el el valor hexadecimal del byte (Por ejemplo el ASCII del caracter "form feed", cuyo valor hexadecimal es 0C, es enviado como =0C). Naturalmente esta codificación incluye otras reglas como que el signo igual ("=") debe ser enviado como =3D y los caracteres de fin de línea y newline no deben codificarse; pero esta es la idea general de como se envían los datos codificados con quoted-printable.

base64: Datos binarios codificados. Esta técnica de codificación puede ser utilizada sobre cualquier flujo de bytes. Tres octetos de datos son codificados como cuatro caracteres de 6 bits, que incrementan el tamaño del archivo en un tercio. Los caracteres de 6 bits son un subconjunto de 64 caracteres US ASCII escogidos porque pueden ser manipulados por cualquier tipo de sistema de correo. La longitud de línea máxima en base64 es de 76 caracteres.

-------------------------------------------------------------------
Datos originales                   H        i        !
-------------------------------------------------------------------
como 3 bytes de 8 bits          01001000 01101001 00100001
-------------------------------------------------------------------
separados en 4 bytes de 6 bits  010010 000110 100100 100001
-------------------------------------------------------------------
transmitidos como octetos       00010010 00000110 00100100 00100001
-------------------------------------------------------------------
datos codificados                  S        G        k        h
-------------------------------------------------------------------

x-token: Datos codificados especialmente. Permite a los desarrolladores de software crear su técnica de codificación privada. Si lo hacen, el nombre de la técnica de codificación debe comenzar con X-. El uso de esta técnica no se estimula mucho porque limita la interoperabilidad entre los sistemas de correo.

La cantidad de tipos de datos soportados y las técnicas de codificación crecen cuando nuevos formatos de representación de datos aparecen y son utilizados en transmisión de mensajes. Nuevos RFCs constantemente definen nuevos tipos de datos y de técnicas de codificación. Se deben leer los últimos RFCs para mantenerse al día en los desarrollos hechos en MIME.


Un comentario para personas que deseen construir su propia aplicación de correo

Es muy importante que se utilice el tipo, el subtipo y la codificación correcta cuando se construyen mensajes de correo con MIME. Un "buen" decodificador MIME utilizará esta información para manejar cada uno de los trozos (chunks) del mensaje.

Infortunadamente existen aplicaciones de correo (las antiguas) que no cumplen con MIME adecuadamente y por ejemplo, la información del tipo se pierde cuando el archivo es salvado. Por esto es buena idea etiquetar cada pieza individual con nombres de archivos que tengan extensiones estándar.

El subtipo application/octect-stream indica que cierta parte del mensaje MIME contiene datos de algun tipo y que cualquier aplicación MIME que trabaje con este subtipo debe tratarla como una secuencia de bytes sin ningún significado intrínseco. Una buena aplicación MIME debe tratar cualquier subtipo que no entienda como si fuese octect-stream.

Fin del comentario

[Anterior] [Índice] [Siguiente]



©Oscar Agudelo.  2000-2001. Todos los derechos reservados.