Compartir a través de


Procesar mensajes de varias partes con el adaptador de POP3

El adaptador POP3 puede procesar mensajes codificados con MIME que cumplan los estándares IETF documentados en RFC 2045, RFC 2046 y RFC 2047. Los mensajes codificados con MIME pueden tener una o varias partes con distintos tipos de contenido. En este tema se trata el modo en que el adaptador de POP3 procesa mensajes de varias partes codificados con MIME.

Recibir mensajes de varias partes con el adaptador de POP3

Si una ubicación de recepción que usa el adaptador POP3 tiene la opción Aplicar descodificación MIME establecida en True , el adaptador POP3 realiza las siguientes acciones al recibir un mensaje codificado por MIME:

  1. Crea un mensaje de BizTalk de varias partes a partir de las partes del mensaje codificado con MIME que recibe. Este mensaje de varias partes puede contener 1 o varias partes y tendrá el mismo número de partes que el mensaje codificado con MIME recibido.

  2. Detecta los encabezados del mensaje codificado con MIME. Si algún encabezado coincide con la lista de propiedades documentadas en el tema Esquema de propiedades del adaptador POP3 y Propiedades , estos encabezados se promueven al mensaje de BizTalk de varias partes como propiedades de contexto.

  3. Usa un algoritmo configurable para designar una de las partes del mensaje codificado con MIME como parte del cuerpo del mensaje de BizTalk. El algoritmo usado para determinar qué parte del mensaje será la parte del cuerpo del mensaje de BizTalk se describe a continuación en la sección Algoritmo de selección de elementos de cuerpo usado por el adaptador POP3.

  4. Publica el mensaje de BizTalk de varias partes en el cuadro de mensajes.

Algoritmo de selección de parte del cuerpo usado por el adaptador de POP3

Cuando el adaptador de POP3 crea un mensaje de BizTalk de varias partes a partir de las partes del mensaje codificado con MIME recibido, se selecciona una de las partes del mensaje como parte del cuerpo del mensaje de BizTalk. La parte del cuerpo del mensaje de BizTalk la usa BizTalk Server para la validación del mensaje, asignación, promoción de propiedades, ensamblado de archivo sin formato y otras operaciones. Los suscriptores a un mensaje de BizTalk de varias partes reciben todas las partes del mensaje pero sólo consumirán la parte designada del cuerpo del mensaje de BizTalk a menos que utilicen una orquestación, una canalización personalizada o un adaptador que pueda comprender mensajes de varias partes. Por ejemplo, puede configurar una orquestación para leer todas las partes de un mensaje de varias partes; el adaptador de SMTP puede leer todas las partes de un mensaje de varias partes y se puede configurar una canalización personalizada para usar el componente de canalización de codificador de MIME/SMIME. Para obtener más información sobre el uso de una orquestación para consumir un mensaje de varias partes, consulte la sección siguiente , Procesamiento de mensajes de varias partes en orquestaciones.

El adaptador POP3 selecciona la parte del cuerpo del mensaje de BizTalk de las partes del cuerpo disponibles en función de los valores proporcionados para el índice de elementos de cuerpo y el tipo de contenido de la pieza de cuerpo.

Nota

El adaptador POP3 está diseñado para reconocer los tipos de contenido de elementos de cuerpo definidos en RFC 2046.

El algoritmo que se usa para seleccionar la parte del cuerpo del mensaje de BizTalk de un correo electrónico se describe a continuación:

  1. Si el índice de elementos de cuerpo se establece en 0 y el tipo de contenido de la parte del cuerpo está en blanco, se usa el siguiente algoritmo para seleccionar la parte del cuerpo del mensaje de BizTalk:

    • Use la primera parte MIME con el encabezado de descripción de contenido establecido como "cuerpo".

    • De lo contrario, use la primera parte MIME con el encabezado de tipo de contenido establecido como "texto/xml".

    • De lo contrario, use la primera parte MIME con el encabezado de tipo de contenido establecido como "texto/sin formato".

    • De lo contrario, use la primera parte MIME con el encabezado Content-Type establecido en "text/".

    • O bien, utilice la primera parte MIME.

  2. De lo contrario, si el índice de elementos de cuerpo está establecido en 0 y se establece el tipo de contenido del elemento de cuerpo, la primera parte del cuerpo del mensaje entrante que coincide con el tipo de contenido del elemento de cuerpo especificado se selecciona como parte del cuerpo del mensaje de BizTalk. Si no hay partes con un tipo de contenido coincidente, el mensaje se suspende.

  3. De lo contrario, si el índice de elementos de cuerpo se establece en un valor mayor que 0 y el tipo de contenido de la parte cuerpo está en blanco, la parte del cuerpo con el índice especificado se selecciona como parte del cuerpo del mensaje de BizTalk. Si el índice especificado es mayor que el número de partes del cuerpo, el mensaje se suspende.

  4. De lo contrario, si el índice de elementos de cuerpo se establece en un valor mayor que 0 y se establece el tipo de contenido de la pieza de cuerpo, el índice de elementos de cuerpo solo se aplica a las partes del cuerpo que coinciden con el tipo de contenido del elemento cuerpo especificado y la parte del cuerpo correspondiente se selecciona como parte del cuerpo del mensaje de BizTalk. Si el índice especificado es mayor que el número de partes con un tipo de contenido coincidente, el mensaje se suspende. Si no hay partes con un tipo de contenido coincidente, el mensaje se suspende.

  5. La parte que se selecciona como parte del cuerpo del mensaje de BizTalk se convierte en la primera parte del mensaje de BizTalk de varias partes que se publica en el cuadro de mensajes, las partes restantes del mensaje conservan el orden que tenían en el mensaje original codificado con MIME.

Procesar mensajes de varias partes en orquestaciones

Si el adaptador de POP3 crea un mensaje de BizTalk de varias partes a partir del mensaje codificado con MIME recibido, todas las partes se publican en la base de datos de cuadro de mensajes aunque sólo se designe una de las partes como parte del cuerpo del mensaje de BizTalk. Por consiguiente, una orquestación suscrita al mensaje de varias partes consume una orquestación. En esta sección se documentan algunas consideraciones al procesar mensajes de varias partes en una orquestación.

Procesar mensajes de varias partes con un número de partes y tipos de partes conocidos

Si la orquestación recibe un mensaje de varias partes con un número de partes y tipos de partes conocidos, puede declarar un mensaje de varias partes en la orquestación y establecer el número de partes y tipos de partes en tiempo de diseño.

Procesar mensajes de varias partes con tipos de partes desconocidos

Si la orquestación recibe un mensaje de varias partes con tipos de elementos desconocidos, puede declarar un mensaje de varias partes en la orquestación y usar el tipo XmlDocument para cada una de las partes para las que se desconoce el tipo.

Procesar mensajes de varias partes con un número y todos los tipos de partes desconocidos

Si la orquestación recibe un mensaje de varias partes con un número desconocido de partes, puede declarar un mensaje de varias partes con una sola parte del tipo XmlDocument en la orquestación para recibir el mensaje. Si se recibe un mensaje de varias partes que contiene mayor que el número de partes declaradas, el motor de orquestación lee cuántas partes hay en el mensaje, construye los tipos de pieza adecuados para los elementos que coinciden con el número de partes del tipo de mensaje declarado y, a continuación, construye elementos XmlDocument para las partes restantes.