Konfiguration des BizTalk SMTP-Adapter mittels eines dynamischen Ports

Zum Verschicken von Mails aus einer BizTalk-Orchestration an unterschiedliche Empfänger, bietet sich ein "Dynamic Send Port" an. Die Sende-Parameter können d...

Zum Verschicken von Mails aus einer BizTalk-Orchestration an unterschiedliche Empfänger, bietet sich ein “Dynamic Send Port” an. Die Sende-Parameter können direkt in der Orchestration gesetzt werden.

Dazu braucht man ein “Message Assigment”- und ein “Expression”-Shape.

Im “Message Assigment”-Shape werden die Eigenschaften für den SMTP-Adapter gesetzt:



msgSend(SMTP.CC) = "xyz@sample.com; ...";


msgSend(SMTP.Subject) = "TESTMAIL: blabla";


msgSend(SMTP.From) = "BizTalk@sample.com";


msgSend(SMTP.SMTPHost) = "smtp.sample.com";


msgSend(SMTP.SMTPAuthenticate) = 0;

Der Empfänger wird als URI-Adresse des Adapters als Eigenschaften des Ports im “Expression”-Shape konfiguriert:



portSend(Microsoft.XLANGs.BaseTypes.Address)=


  "mailto:abc@sample.com"

Wenn man den Absender aus einer anderen Message ziehen möchte, ist das am einfachsten per XPath-Zugriff nach folgendem Beispiel:



portSend(Microsoft.XLANGs.BaseTypes.Address) =


  "mailto:" +


  (System.String) xpath(msgSend, "string(/*[local-name()='Root' and namespace-uri()='http://SampleNamespace']/*[local-name()='To' and namespace-uri()=''])");

für ein XML-Dokument nach dem Schema

<Root>


  blabla


  <To>abc@sample.com</To>
</Root>