Un mensaje MIME
consta de datos y metadatos. Los metadatos MIME constan de cabeceras de
estilo HTTP y de delimitadores de límite MIME.
Cabeceras MIME
Cada cabecera es una pareja
de nombre-valor separada por un signo de dos puntos en una línea. La
secuencia ASCII <CR><LF> termina la línea. Una
secuencia de estas cabeceras, denominada bloque de cabecera, se termina
con una línea en blanco: <CR><LF><CR><LF>. Las
cabeceras que están en este estilo HTTP pueden aparecer en un
documento MIME.
Algunas cabeceras MIME comunes se describen en
Campos de cabeceras MIME estándar.
Content-Type
La única cabecera que debe
estar presente es la cabecera Content-Type. Esta cabecera especifica el tipo de los datos del mensaje. Si el valor de
Content-Type empieza por "multipart", el mensaje es un mensaje MIME
de varias partes. Para mensajes de varias partes, la cabecera Content-Type
también debe incluir un atributo de límite que proporcione el texto utilizado
para delimitar las partes del mensaje. Cada parte MIME tiene su propio
campo Content-Type que especifica el tipo de datos de la parte. Éste
también puede ser de varias partes, lo cual permite que se aniden
mensajes de varias partes. Las partes MIME con cualquier otro valor de
Content-Type se manejan como datos BLOB.
Si se envía un documento
MIME a través de HTTP, la cabecera Content-Type aparece en el bloque de
cabecera HTTP en lugar de aparecer en el cuerpo de mensaje MIME. Por esta razón, el
intermediario maneja el valor de la cabecera Content-Type como la
propiedad ContentType de la carpeta
Propiedades del árbol lógico. Esto permite al analizador MIME obtener el valor de Content-Type para un
documento MIME que se reciba a través de HTTP. Si necesita crear un nuevo
árbol MIME o modificar el valor de Content-Type, establezca el valor de
Content-Type utilizando la propiedad ContentType en el dominio MIME. Si establece el valor de Content-Type directamente en el árbol MIME o el
árbol HTTP, es posible que este valor se ignore o se utilice de forma no coherente.
El ESQL siguiente es un ejemplo de cómo establecer la propiedad ContentType de
intermediario:
SET OutputRoot.Properties.ContentType = 'text/plain';
Análisis
El dominio MIME no impone la especificación
MIME completa. Por tanto, puede trabajar con mensajes que es posible que no
sean válidos en otras aplicaciones. Por ejemplo, el analizador MIME no
insiste en una cabecera
MIME-Version.
El analizador MIME impone las restricciones siguientes:
Casos especiales de MIME de varias partes
El
analizador MIME está pensado principalmente para su uso con mensajes
MIME de varias partes.
Sin embargo, el analizador también maneja algunos
casos especiales:
- MIME de varias partes con una sola parte. El árbol lógico para la parte MIME
guarda el tipo de contenido (Content-Type) y otra información como es habitual, pero el
elemento de datos (Data) para el adjunto está vacío.
- MIME de una sola parte. Para MIME de una sola parte, el árbol lógico
no tiene ningún hijo Parts. El último hijo del árbol MIME es el elemento Data.
El elemento Data es el padre
del BLOB que contiene los datos de mensaje.
- Partes MIME sin contenido.
MIME seguro (S/MIME)
S/MIME es un estándar para
enviar mensajes de correo electrónico seguros. S/MIME tiene un
Content-Type de nivel externo de multipart/signed con los parámetros
protocol y micalg que definen
los algoritmos que se utilizan para cifrar el mensaje. Una o más partes MIME
pueden tener contenido cifrado. Estas partes tienen valores Content-Type
tales como application/pkcs7-signature y una cabecera
Content-Transfer-Encoding de base64. El dominio MIME no intenta interpretar o verificar si el mensaje está firmado.