Saltar al contenido

¿Qué es MIME y para que se emplea?

Significado, características y funcionamiento del MIME

MIME

Una de las vías de comunicaciones digitales más extendidas en el mundo es mediante el envío y recepción de correos electrónicos. Mediante este servicio es posible enviar y recibir mensajes digitales usando redes informáticas. Utilizando este medio de comunicación no solo es posible enviar mensajes de texto, además podemos incluir archivos adjuntos como música, fotos, videos.

Claro, estos adjuntos están limitados a un tamaño específico. Como casi todos los servicios basados en redes, los correos electrónicos necesitan de un protocolo para su transmisión. El protocolo básico para transmitir correo electrónico solo soporta caracteres ASCII de 7 bit. Esto trae consecuencias limitantes para algunos idiomas, ya que solo es posible usar un número reducido de caracteres.

Para solucionar este problema se estableció un formato específico llamado MIME. Este formato es, además, usado en otros protocolos de red dada su versatilidad y prestaciones. En el siguiente artículo te explicamos en qué consiste el formato MIME y cuáles son sus usos y aplicaciones, te invito a que continúes leyendo. Ya comenzamos.

Tabla de contenidos


Definición de MIME

Las extensiones multipropósito de correo de internet MIME (del inglés Multipurpose Internet Mail Extensions), son un conjunto de especificaciones orientadas hacia el intercambio de cualquier tipo de archivo en internet. La aplicación del formato MIME en las comunicaciones es transparente al usuario. Es decir, este no visualiza de ninguna forma cómo influye el formato MIME en sus comunicaciones.

Una de las grandes mejoras en cuanto al correo electrónico asociadas a MIME está dirigida hacia la transferencia de texto en distintos idiomas. Las extensiones MIME deben ser capaces de soportar caracteres distintos de US-ASCII. También debe brindar soporte a archivos adjuntos que no sean textos.

Otra de las funcionalidades que MIME debe satisfacer es cuando el cuerpo del mensaje está compuesto por múltiples partes. Además, cuando la información del encabezado del mensaje está conformada por caracteres que no sean ASCII.

Casi todos los mensajes escritos mediante correo electrónico se transmiten usando el formato MIME mediante el protocolo SMTP. Esta integración es tan profunda, que a los mensajes de correo electrónico en internet comúnmente se les llama mensajes SMTP/MIME.

El contenido que emplea formato MIME no solo es aplicado a correos electrónicos, su uso es más diverso. MIME puede ser aplicado en algunos protocolos en los que se basa la Web. Este es el caso del protocolo HTTP, el cual transmite los datos mediante mensajes tipo e-mail, aunque estos mensajes no son e-mail propiamente dicho.

La norma MIME es aplicada desde 1994. Esta está detallada en muchos documentos oficiales los cuales se encuentran disponibles en internet. Esta norma es muy importante, ya que actualmente ningún software que funciones como cliente de correo electrónico o un navegador web es considerado completo si no soporta el formato MIME.

Tipos de datos

El formato MIME especifica un nombre a cada tipo de datos que maneja. Para asignar estos nombres se emplea el formato tipo/subtipo. En este caso, el tipo se refiere a la categoría general de los datos. En el caso del subtipo, es una vía más específica para referirse concretamente al tipo de datos que se está usando. Entre los tipos de datos tenemos:

  • text: Se está indicando que el tipo de datos es texto plano. En el subtipo pueden especificarse textos en formato html, xml, xhtml entre otros.
  • message: Este tipo encapsula en un mensaje el contenido de otro mensaje. Por ejemplo, cuando damos responder a un mensaje y el texto original es enviado como parte del mensaje. Admite subtipos como partial, rfc822, etc.
  • multipart: Informa que el texto está conformado por varias partes independientes. Subtipos como form-data, digest.
  • audio: El tipo de datos es un audio. Subtipos tales como mp3, wma, wav.
  • video: Hace referencia a archivos de video. Ejemplo se subtipos serían mp4, mkv, avi.
  • image: Indicativo de que el tipo de datos hace referencia a imágenes. Por ejemplo, png, gif, webp.
  • application: Los datos enviados corresponden a datos de aplicaciones, incluyendo datos binarios. Como ejemplo de subtipos podemos incluir json, pdf.

Cabeceras MIME

El formato emplea diferentes cabeceras a modo de brindar información sobre el contenido del mensaje. Estas cabeceras pueden incluir diferentes atributos, cada uno haciendo referencia a un contenido en específico.

MIME-Version

Esta cabecera se emplea para informar que el mensaje está empleando el formato MIME. El valor que contiene comúnmente es “1.0”, hacienda referencia a la versión MIME que implementa. La forma en que se visualiza es:

MIME-Version: 1.0

El número de versión se ha mantenido en 1.0 aun cuando se ha realizado importantes cambios en el formato a través del tiempo.

Content-Type

En esta cabecera es donde se especifica el tipo de datos del contenido del mensaje. Como valor se asigna un tipo de datos type y un subtipo de los mismo subtype.

Content-Type: text/plain

En el caso anterior se hace referencia a un tipo de dato de texto plano. Esta cabecera soporta además mensajes con una parte y una subparte ordenados en forma de árbol. En este caso, la especificación para Content-Type se hace de la siguiente forma:

  • La vía tradicional de asignar el valor text/plain para especificar texto plano. Este es el valor por defecto de la cabecera Content-Type.
  • Texto y archivos adjuntos. En este caso se incluye una parte como texto plano, y en la otra se puede hacer referencia a tipos de datos que no son texto, por ejemplo, application/pdf.
  • Reenvío del mensaje original. Aquí se incluye una parte text/plain, y otra con una parte message/rfc822.

Content-Transfer-Encoding

Dentro del formato MIME se definen una serie de métodos encargados de representar datos binarios mediante codificación ASCII. Este encabezado se emplea para indicar cuál es el método que se ha empleado. Esta cabecera admite los siguientes valores:

En servidores SMTP:

  • 7bit: Son soportadas un máximo de 998 octetos para cada línea de código. Los caracteres CR y LF solo se pueden encontrar al final de una línea CRLF.
  • Quoted printable: Se codifican secuencias de octetos para satisfacer las reglas 7bit.

En servidores SMTP con soporte 8BITMIME

  • 8bit: Son soportadas un máximo de 998 octetos para cada línea de código. Los caracteres CR y LF solo se pueden encontrar al final de una línea CRLF.

En servidores SMTP que brinden soporte a la extensión SMTP BINARYMIME.

  • binary: Hace referencia a cualquier secuencia de octetos.

Encoded-Word

La codificación usada en mensajes MIME siempre debe ser ASCII. En caso de que se usen caracteres de otras codificaciones es necesario usar encoded-word. En este caso, se debe usar la sintaxis =? charset ? codificación ? texto codificado ?=

Charset hace referencia a un conjunto cualesquiera de caracteres que estén registrados con IANA. En cuanto a la codificación, se puede emplear Q-encoding o la codificación base-64. Y el texto es el texto plano que está codificado en la codificación especificada.

Mensajes MIME multipartes

Distintas partes, con su tipo de datos específico, forman estos son mensajes. Para separar cada parte se usa un atributo boundary (frontera) en la cabecera Content-Type. Este valor no puede aparecer en ninguna de las partes, solo entre estas.

Mensaje MIME multiparte.
Mensaje MIME multiparte.

Cada parte del mensaje multiparte posee su propia cabecera más el cuerpo del mensaje.


Artículos relacionados que te podrían resultar interesantes:

Deja una respuesta

Tu dirección de correo electrónico no será publicada.