E-Mails direkt über einen SMTP-Server verschicken
Die Codeunit 400 SMTP Mail stellt Funktionen zum Versenden von E-Mails bereit. Ein installierter Mail-Client wie Microsoft Outlook® ist deshalb dann nicht mehr erforderlich.
Mit Dynamcis NAV 5 (Navision 5) ist die Codeunit 400 „SMTP Mail“ gekommen. Sie bietet uns Funktionen zum Versenden von E-Mails direkt über einen SMTP-Server.
Im Modul „Verwaltung“ unter „IT Verwaltung“ – „Allgemeine Einrichtung“ müssen einmalig unter dem Punkt „SMTP-Mail-Einrichtung“ die Einstellungen zum SMTP-Server hinterlegt werden.

Kommen wir nun zu der neuen Codeunit 400. Diese stellt uns die folgenden Funktionen zur Verfügung:
- CreateMessage
- Send
- AddRecipients
- AddCC
- AddBCC
- AppendBody
- AddAttachment
In den meisten Fällen sind die beiden ersten Funktionen (CreateMessage, Send) ausreichend um eine E-Mail zu erzeugen und zu verschicken. Das könnte dann zum Beispiel so aussehen:
SMTP.CreateMessage(
'Navision24',
'info@navision24.de',
'info@navision24.de',
'Dynamics NAV',
'Dies ist eine Test-E-Mail',
FALSE);
SMTP.Send;
SMTP ist in diesem Beispiel eine Variable vom DataType „Codeunit“ und Subtype „SMTP Mail”.
Die Funktion CreateMessage erwartet die folgenden sechs Parameter:
- Absender Name
- Absender E-Mail-Adresse
- Empfänger E-Mail-Adresse
- E-Mail Betreff
- E-Mail Text (maximal 1024 Zeichen)
- HTML E-Mail ja/nein
Das Versenden einer E-Mail im HTML-Format könnte dann so aussehen:
SMTP.CreateMessage(
'Navision24',
'info@navision24.de',
'info@navision24.de',
'Dynamics NAV',
'<h1>Dies ist eine Test-E-Mail</h1><p>Bye, bye!</p>',
TRUE);
SMTP.Send;
Möchten Sie mehrere Empfänger eintragen, können Sie die Funktion AddRecipients nutzen:
SMTP.AddRecipients('info2@navision24.de');
SMTP.AddRecipients('info3@navision24.de');
Um einen oder mehrere Empfänger ins CC bzw. BCC zu stellen muss die Funktion AddCC bzw. AddBCC genutzt werden:
SMTP.AddCC('info4@navision24.de');
SMTP.AddBCC('info5@navision24.de');
Um einen E-Mail-Text zu nutzen der aus mehr als 1024 Zeichen besteht, muss die Funktion AppendBody genutzt werden:
SMTP.AppendBody('Zusätzlicher Text in der E-Mail!');
Und letztendlich können auch beliebig viele Dateianhänge mit der E-Mail verschickt werden. Hierzu muss die Funktion AddAttachment genutzt werden:
SMTP.AddAttachment('C:\Budget.xls');
Zusammenhängend könnte der C/AL-Code so aussehen:
SMTP.CreateMessage(
'Deine Firma AG',
'it@deinefirma.de',
'chef@deinefirma.de',
'Dynamics NAV',
'',
TRUE);
SMTP.AddCC('sekretärin@deinefirma.de');
SMTP.AppendBody('<p>Im Anhang die monatliche Budget-Datei.</p>');
SMTP.AppendBody('<p>Gruß, eure IT-Abteilung.</p>');
SMTP.AddAttachment('C:\Budget.xls');
SMTP.Send;
In dem o. g. Beispiel wird eine E-Mail mit einer Excel-Datei an den „Chef“ und an die „Sekretärin“ verschickt.
Der große Vorteil gegenüber der Codeunit 397 Mail ist der, dass hier kein lokales E-Mail-Programm beim Navision-Benutzer installiert sein muss. So können E-Mails bei bestimmten Aktionen still und heimlich im Hintergrund verschickt werden.
Zurück zur Tutorialübersicht.