Empfangen von EMails mit Attachment und Speichern der angefügten Dateien unter ihrem ursprünglichen Namen

Das Empfangen von EMails ist mit dem POP3 Adapter des Microsoft Biztalk Server 2006 möglich. Zur Speicherung der beigefügten Dateien unter ihrem Originaldateinamen ist ein kleiner Umweg via einer Orchestration notwendig.

Folgende Prozessbestandteile sind zu definieren:

  1. Erstellung eines neuen Biztalk Projektes mit Hilfe von Visual Studio – Einfügen einer Orchestration
  2. Definition eines unidirektionalen Empfangports mit der Kommunikationsrichtung “Ich empfange Nachrichten immer auf diesem Port” und der Portbindung “Später angeben”
  3. Definition eines unidirektionalen Sendeports mit der Kommunikationsrichtung “Ich sende Nachrichten immer auf diesem Port” und der Portbindung “Später angeben”
  4. Definition des Prozessablaufes und der Variable nCount vom Typ Int32 (Startewert 1)
  5. Kompilieren und Bereitstellen der Orchestration
  6. Erstellen eines Empfangports vom Typ POP3 mit Hilfe des Biztalk Verwaltungsmanagement Tools – Konfiguration des Ports mit den Angaben Ihres POP3 Servers. Wichtig ist hier die Einstellung “MIME Decodierung anwenden” mit Wahr
  7. Erstellen eines Sendeports vom Typ File (z.B) mit Hilfe des Biztalk Verwaltungsmanagement Tools – Konfiguration des Ports. Wichtig ist hier die Verwendung des Makros %SourceFileName%
  8. Aktivieren der Ports, Bindung der Ports an die Orchestration
  9. Starten der Orchestration

cc cc receive pop3 messages

Der Prozessabschnitt GetCount ermittelt die Anzahl der angefügten Attachments und speichert diese in der Variable nCount

//Set the input message to a var of XLang Message type
oXMessage = In;
// Get count
nCount = oXMessage.Count;

Der Prozessabschnitt MessageAssignment wird in der Schleife aufgerufen und übergibt ein Attachment nach dem anderen an den Sende Port. Dabei ist es wichtig, dass der Original Dateiname via MIME.FileName an die File.ReceivedFileName Eigenschaft des SendePort übergeben wird, so dass mit dem Makro %SourceFileName% der Original Dateiname auch wieder verwendet werden kann.

//Get the n'th part and set to a new message
Out = oXMessage[n];
Out(FILE.ReceivedFileName) = Out(MIME.FileName);
// Add to count
n = n + 1

Download der Orchestration

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.