Verarbeiten von mehrteiligen Nachrichten mit dem POP3-Adapter

Der POP3-Adapter kann MIME-codierte Nachrichten verarbeiten, die den in RFC 2045, RFC 2046 und RFC 2047 dokumentierten IETF-Standards entsprechen. MIME-codierte Nachrichten enthalten mindestens einen Teil oder auch viele Teile mit unterschiedlichen Inhaltstypen. In diesem Thema wird erläutert, wie der POP3-Adapter mehrteilige MIME-codierte Nachrichten verarbeitet.

Empfangen von mehrteiligen Nachrichten mit dem POP3-Adapter

Wenn für einen Empfangsspeicherort, der den POP3-Adapter verwendet, die Option MIME-Decodierung anwenden auf True festgelegt ist, führt der POP3-Adapter beim Empfangen einer MIME-codierten Nachricht die folgenden Aktionen aus:

  1. Aus den Teilen der empfangenen MIME-codierten Nachricht wird eine mehrteilige BizTalk-Nachricht erstellt. Diese mehrteilige Nachricht enthält mindestens einen Teil, kann jedoch auch viele enthalten. Die Anzahl der Teile ist mit der Anzahl der Teile der empfangenen MIME-codierten Nachricht identisch.

  2. Die Header der MIME-codierten Nachricht werden überprüft. Wenn Header mit der Liste der Eigenschaften übereinstimmen, die im Thema POP3-Adaptereigenschaftenschema und Eigenschaften dokumentiert sind, werden diese Header als Kontexteigenschaften zur mehrteiligen BizTalk-Nachricht heraufgestuft.

  3. Anhand eines konfigurierbaren Algorithmus wird ein Teil der MIME-codierten Nachricht als Textteil der BizTalk-Nachricht festgelegt. Der Algorithmus, der verwendet wird, um zu bestimmen, welcher Nachrichtenteil der BizTalk-Nachrichtentext sein soll, wird unten im Abschnitt Textteilauswahlalgorithmus beschrieben, der vom POP3-Adapter verwendet wird.

  4. Die mehrteilige BizTalk-Nachricht wird in der MessageBox veröffentlicht.

Algorithmus zur Textteilauswahl im POP3-Adapter

Wenn der POP3-Adapter aus den Teilen der empfangenen MIME-codierten Nachricht eine mehrteilige BizTalk-Nachricht erstellt, wird einer der Nachrichtenteile als Textteil der BizTalk-Nachricht ausgewählt. Der Textteil der BizTalk-Nachricht wird von BizTalk Server für Vorgänge wie Nachrichtenüberprüfung, Zuordnung, Eigenschaftenheraufstufung und Flatfile-Assemblierung verwendet. Abonnenten einer mehrteiligen BizTalk-Nachricht empfangen alle Nachrichtenteile, verarbeiten jedoch nur den Textteil der BizTalk-Nachricht, es sei denn, es wird eine Orchestrierung, eine benutzerdefinierte Pipeline oder ein Adapter verwendet, der mehrteilige Nachrichten verarbeiten kann. Sie können z. B. eine Orchestrierung konfigurieren, mit der alle Teile einer mehrteiligen Nachricht gelesen werden. Der SMTP-Adapter kann alle Teile einer mehrteiligen Nachricht lesen, und Sie können eine benutzerdefinierte Pipeline so konfigurieren, dass sie die Pipelinekomponente des MIME/SMIME-Encoders verwendet. Weitere Informationen zur Verwendung einer Orchestrierung zum Nutzen einer mehrteiligen Nachricht finden Sie im abschnitt unten, Verarbeiten von mehrteiligen Nachrichten in Orchestrierungen.

Der POP3-Adapter wählt den BizTalk-Nachrichtentextteil aus den verfügbaren Textteilen basierend auf den werten aus, die für den Textteilindex und den Textteilinhaltstyp angegeben werden.

Hinweis

Der POP3-Adapter ist für die Erkennung der In RFC 2046 definierten Textteilinhaltstypen konzipiert.

Im Folgenden wird der Algorithmus beschrieben, mit dem aus einer E-Mail der Textteil der BizTalk-Nachricht festgelegt wird:

  1. Wenn der Textteilindex auf 0 festgelegt ist und der Textteilinhaltstyp leer ist, wird der folgende Algorithmus verwendet, um den Textteil der BizTalk-Nachricht auszuwählen:

    • Es wird der erste MIME-Teil verwendet, bei dem der Content-Description-Header auf „body“ festgelegt ist.

    • Andernfalls wird der erste MIME-Teil verwendet, bei dem der Content-Type-Header auf „text/xml“ festgelegt ist.

    • Andernfalls wird der erste MIME-Teil verwendet, bei dem der Content-Type-Header auf „text/plain“ festgelegt ist.

    • Andernfalls wird der erste MIME-Teil verwendet, bei dem der Content-Type-Header auf „text/“ festgelegt ist.

    • Andernfalls wird der erste MIME-Teil verwendet.

  2. Andernfalls, wenn der Textteilindex auf 0 und der Textteilinhaltstyp festgelegt ist, wird der erste Textteil der eingehenden Nachricht, der dem angegebenen Textteilinhaltstyp entspricht, als BizTalk-Nachrichtentextteil ausgewählt. Wenn keine Teile der Nachricht einen entsprechenden Inhaltstyp aufweisen, wird die Nachricht angehalten.

  3. Andernfalls, wenn der Textteilindex auf einen Wert größer als 0 und der Textteilinhaltstyp leer ist, wird der Textkörperteil mit dem angegebenen Index als BizTalk-Nachrichtentextteil ausgewählt. Wenn der angegebene Index größer als die Anzahl an Textteilen ist, wird die Nachricht angehalten.

  4. Andernfalls wird der Textteilindex auf einen Wert größer als 0 und der Textteilinhaltstyp festgelegt, dann wird der Textteilindex nur auf die Körperteile angewendet, die dem angegebenen Textteilinhaltstyp entsprechen, und der entsprechende Textteil wird als BizTalk-Nachrichtentextteil ausgewählt. Wenn der angegebene Index größer als die Anzahl an Teilen mit einem entsprechenden Inhaltstyp ist, wird die Nachricht angehalten. Wenn keine Teile der Nachricht einen entsprechenden Inhaltstyp aufweisen, wird die Nachricht angehalten.

  5. Der als Textteil der BizTalk-Nachricht ausgewählte Teil wird der erste Teil der mehrteiligen BizTalk-Nachricht, die in der MessageBox veröffentlicht wird. Die übrigen Teile der Nachricht bleiben in der Reihenfolge, die sie in der MIME-codierten Originalnachricht aufwiesen.

Verarbeiten mehrteiliger Nachrichten in Orchestrierungen

Wenn der POP3-Adapter aus einer empfangenen MIME-codierten Nachricht eine mehrteilige BizTalk-Nachricht erstellt, werden alle Teile in der MessageBox-Datenbank veröffentlicht, auch wenn nur einer der Teile als Textteil der BizTalk-Nachricht ausgewählt wird. Diese Teile können später von einer Orchestrierung verarbeitet werden, die die mehrteilige Nachricht abonniert. In diesem Abschnitt werden einige der Überlegungen zum Verarbeiten von mehrteiligen Nachrichten in einer Orchestrierung dokumentiert.

Verarbeiten von mehrteiligen Nachrichten, bei denen Anzahl und Typ der Teile bekannt sind

Wenn die Orchestrierung eine mehrteilige Nachricht empfängt, bei der Anzahl und Typ der Teile bekannt sind, können Sie in der Orchestrierung eine mehrteilige Nachricht deklarieren und Anzahl und Typ der Teile zur Entwurfszeit festlegen.

Verarbeiten von mehrteiligen Nachrichten, bei denen der Typ einiger Teile unbekannt ist

Wenn Ihre Orchestrierung eine mehrteilige Nachricht mit unbekannten Teiletypen empfängt, können Sie eine mehrteilige Nachricht in der Orchestrierung deklarieren und den XmlDocument-Typ für jeden der Teile verwenden, für die der Typ unbekannt ist.

Verarbeiten von mehrteiligen Nachrichten, bei denen Anzahl und Typ der Teile unbekannt sind

Wenn Ihre Orchestrierung eine mehrteilige Nachricht mit einer unbekannten Anzahl von Teilen empfängt, können Sie eine mehrteilige Nachricht mit einem einzelnen Teil des XmlDocument-Typs in der Orchestrierung deklarieren, um die Nachricht zu empfangen. Wenn eine mehrteilige Nachricht empfangen wird, die mehr als die Anzahl der deklarierten Teile enthält, liest die Orchestrierungs-Engine, wie viele Teile in der Nachricht vorhanden sind, erstellt dann die richtigen Teiletypen für die Teile, die der Anzahl der Teile im deklarierten Nachrichtentyp entsprechen, und erstellt dann XmlDocument-Teile für die verbleibenden Teile.