Dynamics NAV: E-Mail mit Zeilenumbruch versenden (CodeUnit 397)
Wer mit Dynamics NAV arbeitet kommt früher oder später mal in die Situation E-Mails versenden zu müssen. Hierfür bietet Dynamics NAV/Navision von Hause aus zwei CodeUnits an dieses schnell zu realisieren.
Aber wie bindet man nicht druckbare Zeichen, z.B. Zeilenumbrüche, in E-Mails ein?
Die CodeUnits „Mail“ und „SMTP Mail“ in Dynamics NAV
Dynamics NAV, auch bekannt unter dem Namen Navision, biete Softwareentwicklern zwei Möglichkeiten E-Mails zu versenden. Zum einen gibt es die relativ neue Codeunit „SMTP Mail“ (ID 400), die es seit Navision 5 gibt, und die älter CodeUnit „Mail“(ID 397).
Einen Zeilenumbruch mit „SMTP Mail“ (ID 400) zu realisieren ist ganz einfach. Da es einen Parameter für das HTML-Format gibt, kann man einfach bei setzen dieses Parameters die bekannten HTML-Tags nutzen.
Bei der älteren CodeUnit mit der ID 397 sieht es etwas anders aus.
E-Mails versenden mit der CodeUnit 397
Die CodeUnit Mail (397) stellt die Funktion NewMessage bereit, mit der man E-Mails über das lokal installierte E-Mail-Programm verschicken kann. Die Funktion hat die folgenden sechs Parameter:
- ToName (Text 80) – Email Empfänger
- CCName (Text 80) – CC Email Adresse
- Subject (Text 260) – Betreff
- Body (Text 260) – Text
- AttachFileName (Text 260) – Dateiame für den Anhang
- OpenDialog (Boolean) – TRUE/FALSE, soll Outlook vor dem Senden gestartert werden
Wie erzwingt man aber nun in dem Text der E-Mail einen Zeilenumbruch?
Dies ist einfacher als man denkt, man muss nur den ASCII-Code kennen.
Zunächst erstellt Ihr unter Globalen Variablen oder Lokalen Variablen (je nach Wunsch) eine Textvariable CRLF. Diese muss die Länger 2 haben.
Variablendeklaration
- Name: CRLF
- Datatype: Text
- Lenght: 2
Als zweites weißt Ihr dieser Variable dann die ASCII-Zeichen 13 und 10, die den Zeilenumbruch darstellen, zu. Das war es schon. Nun könnt Ihr die Text-Variable CRLF überall einsetzen, wo Ihr einen Zeilenumbruch benötigt.
Hier seht Ihr nochmal den C/AL-Code zum Versenden einer E-Mail mit der CodeUnit 397. Mail ist hierbei ein Objekt vom Datatyp Codeunit und dem Subtype Mail (ID 397). Die anderen sind Textvariablen.
CRLF := '';
CRLF[1] := 13;
CRLF[2] := 10;
BodyLine := 'Hallo Welt!' + CRLF + 'Der Softwarentwickler Blog';
Mail.NewMessage(Reciever,CcName,SubjectLine,BodyLine,AttachedFileName,FALSE);
Wie Ihr seht ist ein Zeilenumbruch kein Hexenwerk und das Versenden von E-Mails mit Dynamics NAV bzw. der CodeUnit 397 kinderleicht. Das einzige, was bei dieser CodeUnit zu bedenken ist, ist das Vorhandensein des E-Mail-Clients (Microsoft Outlook). Wer dies nicht möchte muss auf die CodeUnit 400 (SMTP Mail) zurückgreifen.