In meinem letzten Blogpost habe ich mich postiv über das neue Visual Studio 2008 und den grafischen Workflow-Editor geäußert. Seitdem habe ich ein paar ältere Workflows mit Visual Studio 2008 neu erstellt - und dabei bin ich auf ein kleines Problem gestoßen.
Um in einem Workflow eine Benachrichtigungsmail zu verschicken, zieht man im grafischen Editor das Icon SendEMail aus der Toolbox auf die gewünschte Stelle im Ablaufplan. Anschließend konfiguriert man die wichtigesten Parameter (Adresse, Betreff, Mailtext) und schon kann der Workflow eine Benachrichtigungsmail erzeugen und verschicken (vorausgesetzt, man hat in der Zentraladministration die Parameter für ausgehende Mails richtig eingestellt). Dies klappt auch, aber mit der Formatierung der abgeschickten Mail war ich nicht zufrieden, denn offenbar verschickt SendEMail Mails im HTML-Format. Ich habe nun nach einer Möglichkeit gesucht, statt in HTML die Mails als Text (plain text) zu verschicken. Leider gibt gibt es dafür bei SendEMail keinen Parameter - aber man kann sich mit dem Property Headers behelfen.
Hinter dem Property Headers verbirgt sich ein StringDictionary - das ist eine Liste, die aus Key / Value - Paaren besteht.
Mit folgendem Snippet kann man in einem Workflow Mails als 'plan text' verschicken:
public StringProperty oHeaders;
oHeaders = new StringDictionary();
oHeaders.Add(„Content-Type“, „plain/text“);
Anschließend weist man dem betreffenden SendEMail-Objekt bzw. dessen Headers-Property die Variable oHeaders zu. Ab sofort werden Mails dieses SendEMail-Objekts als reine Textmails verschickt.