Share via


Traitement des messages à parties multiples avec l'adaptateur POP3

L’adaptateur POP3 peut traiter les messages encodés en MIME qui sont conformes aux normes IETF documentées dans RFC 2045, RFC 2046 et RFC 2047. Les messages MIME peuvent être constitués d'une ou de plusieurs parties, avec différents types de contenus. Cette rubrique décrit la manière dont l'adaptateur POP3 traite les messages MIME à parties multiples.

Réception de messages à parties multiples avec l'adaptateur POP3

Si l’option Appliquer le décodage MIME à un emplacement de réception qui utilise l’adaptateur POP3 a la valeur True , l’adaptateur POP3 effectue les actions suivantes lors de la réception d’un message encodé en MIME :

  1. Crée un message BizTalk à parties multiples à partir des parties du message MIME reçu. Le message à parties multiples peut contenir d'une à plusieurs parties et contient le même nombre de parties que le message MIME reçu.

  2. Analyse les en-têtes du message MIME. Si des en-têtes correspondent à la liste des propriétés documentées dans la rubrique POP3 Adapter, schéma et propriétés , ces en-têtes sont promus en tant que propriétés de contexte dans le message BizTalk en plusieurs parties.

  3. Utilise un algorithme configurable pour désigner l'une des parties du message MIME en tant que corps du message BizTalk. L’algorithme utilisé pour déterminer la partie de message qui sera le composant corps du message BizTalk est décrit ci-dessous dans la section Algorithme de sélection de partie de corps utilisé par l’adaptateur POP3.

  4. Publie le message BizTalk à parties multiples dans la base de données MessageBox.

Algorithme de sélection du corps utilisé par l'adaptateur POP3

Lorsque l'adaptateur POP3 crée un message BizTalk à parties multiples à partir des parties du message MIME reçu, il sélectionne l'une des parties du message comme corps du message BizTalk. Le corps du message BizTalk est utilisé par BizTalk Server notamment pour la validation du message, le mappage, la promotion de propriétés, l'assembly de fichier plat et d'autres opérations. Les abonnés à un message BizTalk à parties multiples reçoivent toutes les parties du message mais n'utilisent que le corps désigné du message BizTalk, sauf utilisation d'une orchestration, d'un pipeline personnalisé ou d'un adaptateur qui peut comprendre les messages à parties multiples. Par exemple, vous pouvez configurer une orchestration pour lire toutes les parties d'un message à parties multiples. L'adaptateur SMTP peut lire toutes les parties d'un message à parties multiples et un pipeline personnalisé peut être configuré pour utiliser le composant de pipeline Encodeur MIME/SMIME. Pour plus d’informations sur l’utilisation d’une orchestration pour consommer un message en plusieurs parties, consultez la section ci-dessous, Traitement des messages de parties multiples dans les orchestrations.

L’adaptateur POP3 sélectionne le corps du message BizTalk parmi les parties de corps disponibles en fonction des valeurs fournies pour l’index de composant de corps et le type de contenu de partie de corps.

Notes

L’adaptateur POP3 est conçu pour reconnaître les types de contenu de partie de corps définis dans RFC 2046.

L'algorithme utilisé pour sélectionner le corps du message BizTalk d'un courrier électronique est décrit ci-après :

  1. Si l’index de partie de corps a la valeur 0 et que le type de contenu de partie de corps est vide, l’algorithme suivant est utilisé pour sélectionner le composant corps du message BizTalk :

    • Utilisez la première partie MIME avec l'en-tête Content-Description défini sur « body ».

    • Sinon, utilisez la première partie MIME avec l'en-tête Content-Type défini sur « text/xml ».

    • Sinon, utilisez la première partie MIME avec l'en-tête Content-Type défini sur « text/plain ».

    • Sinon, utilisez la première partie MIME avec l'en-tête Content-Type défini sur « text/ ».

    • Sinon, utilisez la première partie MIME.

  2. Sinon, si l’index de partie de corps est défini sur 0 et que le type de contenu de partie de corps est défini, la première partie du corps du message entrant qui correspond au type de contenu de partie de corps spécifié est sélectionnée en tant que partie du corps du message BizTalk. Si aucune partie ne correspond au type de contenu, le message est interrompu.

  3. Sinon, si l’index de partie de corps est défini sur une valeur supérieure à 0 et que le type de contenu de partie de corps est vide, le composant de corps avec l’index spécifié est sélectionné comme composant corps du message BizTalk. Si l'index spécifié est supérieur au nombre de corps, le message est interrompu.

  4. Sinon, si l’index de partie de corps est défini sur une valeur supérieure à 0 et que le type de contenu de partie de corps est défini, l’index de partie de corps est appliqué uniquement aux parties de corps qui correspondent au type de contenu de partie de corps spécifié et le composant de corps correspondant est sélectionné comme composant de corps de message BizTalk. Si l'index spécifié est supérieur au nombre de corps avec un type de contenu correspondant, le message est interrompu. Si aucune partie ne correspond au type de contenu, le message est interrompu.

  5. La partie sélectionnée comme corps du message BizTalk devient la première partie du message BizTalk à parties multiples publié dans la base de données MessageBox, tandis que les parties restantes du message gardent l'ordre qu'ils avaient dans le message MIME d'origine.

Traitement de messages à parties multiples dans des orchestrations

Lorsque l'adaptateur POP3 crée un message BizTalk à parties multiples à partir d'un message MIME reçu, toutes les parties sont publiées dans la base de données MessageBox même si une seule partie est désignée comme corps du message BizTalk. Ces parties peuvent être ensuite utilisées par une orchestration abonnée au message à parties multiples. Cette section décrit certaines considérations lors du traitement de messages à parties multiples dans une orchestration.

Traitement de messages à parties multiples avec un nombre connu de parties et des types de parties connus

Si votre orchestration reçoit un message à parties multiples avec un nombre connu de parties et des types de parties connus, vous pouvez déclarer un message à parties multiples dans l'orchestration et définir le nombre de parties et les types de parties au moment de la conception.

Traitement de messages à parties multiples avec des types de parties inconnus

Si votre orchestration reçoit un message en plusieurs parties avec des types de parties inconnus, vous pouvez déclarer un message en plusieurs parties dans l’orchestration et utiliser le type XmlDocument pour chacune des parties pour lesquelles le type est inconnu.

Traitement de messages à parties multiples avec un nombre inconnu de parties et tous les types de parties inconnus

Si votre orchestration reçoit un message en plusieurs parties avec un nombre inconnu de parties, vous pouvez déclarer un message en plusieurs parties avec une seule partie du type XmlDocument dans l’orchestration pour recevoir le message. Si un message à parties multiples qui contient un nombre supérieur au nombre de parties déclarées est reçu, le moteur d’orchestration lit le nombre de parties contenues dans le message, puis construit les types de parties appropriés pour les parties qui correspondent au nombre de parties dans le type de message déclaré, puis construit des composants XmlDocument pour les parties restantes.