En esta tarea se correlaciona la variable XML que contiene
la parte MIME de la cabecera del e-mail y la variable de tipo cadena que contiene
el cuerpo del mensaje a los parámetros de entrada mimeheader y body
de la actividad Leer MIME respectivamente. Las variables deben correlacionarse
con los parámetros de entrada mime header y body — ambos parámetros de entrada
son obligatorios. El parámetro de entrada mime header es de tipo XML y el
parámetro de entrada body es de tipo cadena.
Acerca de esta tarea
La siguiente tabla define los elementos del parámetro de
entrada mimeheader:
Tabla 1. Nombre del elemento |
Valor predeterminado |
mimeVersion |
Actualmente no se usa. |
contentType/mainType |
Actualmente no se usa. La actividad Leer MIME
determina si el mensaje es multiparte o no analizando el mensaje. Para ello
utiliza el delimitador de límite especificado. |
contentType/subType |
Actualmente no se usa. |
contentType/charset |
Actualmente no se usa. |
contentType/attribute/name – contentType/attribute/value |
El elemento atributo contiene un conjunto de atributos
en forma de pares nombre/valor. Puede especificar el atributo boundary
que especifica el delimitador de límite entre las entidades multiparte
del mensaje. Si especifica el atributo boundary,
sustituirá el límite predeterminado establecido en el propio mensaje.
Si no se ha especificado un atributo boundary en el propio mensaje,
o si se está utilizando el elemento attribute, se genera una excepción en
tiempo de ejecución. |
contentTransferEncoding |
Actualmente no se usa. |
otherMimeHeaders |
Actualmente no se usa. |
El cuerpo del mensaje puede contener una o más partes MIME
separadas por el valor de límite especificado en el elemento
contentType/attribute
del parámetro de entrada mimeheader. Cada parte contiene una cabecera MIME
que describe varios atributos del cuerpo asociado a dicha parte. El modo en que
se analice una parte individual depende de los valores asignados a los
siguientes parámetros del entityMimeHeader del cuerpo de la entidad:
- Cabecera Content-Type
- Atributo Charset dentro de la cabecera Content-Type
- Content-Transfer-Encoding
El modo en que se analice el cuerpo de la parte depende de los valores
de Content-Transfer-Encoding y de Content-Type:
Content-Type es igual a
“text”:
- Si Content-Type tiene el valor “text” y Content-Transfer-Encoding tiene los valores
“7-bit”/”8-bit” o “binary”, el cuerpo de la parte se convierte a una cadena con
codificación UTF8 y se copia en el elemento entityBody del parámetro de salida parts.
- Si Content-Type tiene el valor “text” y Content-Transfer-Encoding tiene el
valor “quoted-printable”, el cuerpo de la parte se decodifica conforme a la codificación Quoted-printable,
se convierte en una cadena con codificación UTF-8 en función del atributo charset y se copia
en el elemento entityBody del parámetro de salida parts.
- Si Content-Type tiene el valor “text” y Content-Transfer-Encoding tiene el
valor “base64”, el cuerpo de la parte se decodifica conforme a la codificación base64,
se convierte en una cadena con codificación UTF-8 en función del atributo charset y se copia
en el elemento entityBody del parámetro de salida parts.
Si no se especifica explícitamente en la cabecera MIME, a charset
se le asigna el valor predeterminado UTF8. La única excepción a este comportamiento predeterminado tiene lugar
cuando Content-Disposition es igual a “attachment” y Content-Type es igual a
“text". En este caso, la parte no se trata como texto,
puesto que se desconoce el juego de caracteres de los datos. Además, Content-Transfer-Encoding
tiene el valor "binary".
Content-Type no es igual a “text”:
- Si Content-Type no es igual a “text” y Content-Transfer-Encoding tiene los valores
“7bit”/”8bit” o “binary”, el cuerpo de la parte se convierte a una cadena con
codificación UTF8 y se copia en el elemento entityBody del parámetro de salida parts.
- Si Content-Type no es igual a “text” y Content-Transfer-Encoding
tiene el valor “quoted-printable,” el cuerpo de la parte se decodifica conforme a la codificación Quoted-printable,
se codifica en base64 y se copia en el elemento entityBody del parámetro de salida parts.
- Si Content-Type no es igual a “text” y Content-Transfer-Encoding
tiene el valor “base64,” el cuerpo de la parte se copia tal cual (datos base64) en el elemento entityBody
del parámetro de salida parts.