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>