E-Mail senden
Nutze den Schritt E-Mail senden, um aus einem Flow heraus eine E-Mail zu versenden. Der Schritt verwendet das Standard-E-Mail-Modul von Business Central – dieselbe Komponente, die auch die Seite E-Mail-Konten und die Beleg-Versand-Aktionen antreibt – damit konfigurierte Konten, Szenarien und das Outbox-Handling konsistent wiederverwendet werden. Es wird kein eigener SMTP-Stack eingeführt.
Typische Einsatzszenarien:
- Versand einer generierten Rechnungs-PDF an den Kunden im Anschluss an einen
PDF-Dokument erstellen-Schritt. - Benachrichtigung eines Team-Postfachs, wenn eine Bestellung versendet wurde.
- Eskalation überfälliger Vorgänge an eine Admin-Adresse aus einem zeitgesteuerten Flow.
Schritt konfigurieren
Öffne den Flow-Editor, füge E-Mail senden hinzu und fülle die Konfigurationsseite aus.
Beschreibung
- Zweck: Beschreibt, was dieser Schritt im Kontext deines Flows tut.
- Wann ausfüllen: Immer. Erscheint im Editor und in der Ausführungshistorie.
Von
- Zweck: Das E-Mail-Konto, über das die Mail versendet wird.
- Wann ausfüllen: Verpflichtend.
- Funktionsweise: Klicke auf den Assist-Button, um die E-Mail-Konten-Auswahl zu öffnen. Es werden nur in diesem Mandanten registrierte Konten gelistet. Sowohl Konto-ID als auch Connector werden in der Schritt-Konfiguration gespeichert.
- Tipp: Wenn keine Konten erscheinen, richte zunächst E-Mail unter E-Mail einrichten in BC ein. Der Schritt legt keine Konten an und ändert sie nicht – er nutzt nur bestehende.
An
- Zweck: Empfänger-Adressen in der An-Zeile.
- Wann ausfüllen: Verpflichtend (oder nutze stattdessen CC / BCC – mindestens eines der drei muss gefüllt sein).
- Funktionsweise: Eine oder mehrere Adressen, getrennt durch
;oder,. SmartFields werden beim Ausführen des Schritts aufgelöst –{{customer.email}}ergibt dann die Mail des Kunden.
Betreff
- Zweck: Die Betreffzeile.
- Wann ausfüllen: Verpflichtend.
- Funktionsweise: Reiner Text. SmartFields werden beim Ausführen des Schritts aufgelöst.
Inhalt
- Zweck: Der HTML-Inhalt der E-Mail.
- Wann ausfüllen: Verpflichtend.
- Funktionsweise: Über die Symbolleiste lassen sich Fett, Kursiv, Listen, Links, Tabellen und Bilder einfügen (BC-Standard-RichText-Editor). SmartField-Platzhalter wie
{{customer.name}}werden beim Ausführen des Schritts aufgelöst. Zum Einfügen eines SmartFields klicke auf SmartField einfügen (Alt+S) – der Picker kopiert den Platzhalter in die Zwischenablage zum Einfügen an beliebiger Stelle im Editor.
Anhänge
- Zweck: Dateien, die der E-Mail beigefügt werden.
- Wann ausfüllen: Optional.
- Funktionsweise: Jede Zeile ist entweder ein Verweis-Selektor oder ein Inline-Eintrag:
- Verweis zeigt auf einen SmartField, der zu einem – oder einem Array von –
mse365 AF Document-Datensätzen aufgelöst wird. Jeder gefundene Datensatz wird zu einem Anhang (Dateiname und Inhalt aus dem Dokument). So hängst du eine zuvor per PDF-Dokument erstellen generierte PDF an. - Inline trägt einen expliziten Dateinamen plus Base64-codierten Inhalt. Nützlich, wenn ein vorgelagerter Schritt (HTTP-Request, Parser etc.) bereits Base64-Daten produziert hat.
- Verweis zeigt auf einen SmartField, der zu einem – oder einem Array von –
- Tipp: Wenn der Verweis-Selektor zu einem leeren Array auflöst, wird die Mail ohne Anhänge versendet. Der Schritt erzwingt keine eigene Größenobergrenze; das E-Mail-Modul / der SMTP-Provider lehnt zu große Mails mit eigener Fehlermeldung ab.
CC / BCC
- Zweck: Kopie- und Blindkopie-Empfänger.
- Wann ausfüllen: Optional. Versteckt unter Mehr anzeigen.
- Funktionsweise: Gleiche Form wie An. SmartFields werden unterstützt.
Output
Der Schritt liefert einen einzelnen Wert-Output:
sentEmailId– die GUID der versandten Nachricht. Dieselbe ID wird alsSent Email."Message Id"in der BC-Tabelle der gesendeten Mails verwendet, sodass Folgesteps darauf verweisen oder den Eintrag nachladen können.
Was passiert, wenn der Schritt läuft
- Der Schritt liest seine Konfiguration (Konto, Empfänger, Betreff, Inhalt, Anhänge).
- AutoFlow-Setup → Testmodus wird geprüft – siehe unten.
- Empfänger werden auf Wohlgeformtheit geprüft (jeder nicht-leere Eintrag muss wie eine Mail-Adresse aussehen).
- Das konfigurierte Konto wird auf aktive Registrierung geprüft; fehlt es oder ist es inaktiv, wirft der Schritt einen Fehler.
- Anhänge werden materialisiert: Verweis-Selektoren werden gegen den SmartField-Kontext aufgelöst, jeder
mse365 AF Document-Datensatz steuert seinen Dateinamen und Inhalt bei; Inline-Zeilen werden Base64-dekodiert. - Die Nachricht wird über
Codeunit "Email Message".Create(HTML-Body) erstellt, Anhänge werden hinzugefügt, undCodeunit Email.Sendversendet synchron. - Die Message-GUID landet als
sentEmailId-Output.
Testmodus (AutoFlow-Setup)
Auf der Seite AutoFlow-Setup gibt es eine Gruppe Testmodus mit zwei Feldern:
- Testmodus (Kommunikation umleiten) – aktiv in einem Sandbox- oder Test-Mandanten leitet jeder E-Mail-senden-Schritt in diesem Mandanten An / CC / BCC an die unten konfigurierten Test-Empfänger um statt an die echten Adressen.
- Testmodus-E-Mail-Empfänger – die komma- oder semikolon-getrennte Liste der Test-Adressen.
So vermeidest du, dass Testläufe an echte Kunden zugestellt werden. Die Umleitung wird im Step-Log vermerkt.
Fehlerbehandlung
Folgende Fälle werfen einen AL-Fehler und brechen den Schritt ab:
- Empfänger leer (An / CC / BCC alle leer).
- Ungültige E-Mail-Adresse.
- Konfiguriertes Konto fehlt oder ist nicht mehr registriert.
- Verweis-Selektor zeigt auf die falsche Tabelle oder einen nicht existierenden Datensatz.
- Base64-Inhalt eines Inline-Anhangs ist ungültig.
- E-Mail-Modul oder SMTP-Provider lehnt den Versand ab.
Für eine In-Flow-Behandlung (Fehler abfangen und auf einer separaten Edge weitermachen) nutzt man den geplanten Guarded-Steps-Mechanismus: ist der Schalter aktiv, landet ein Sende-Fehler auf dem _errorMessage-Output und die On error-Edge feuert.
Reply-To
Reply-To wird in v1 nicht unterstützt. Die öffentliche AL-Email-API von BC (Codeunit Email Message) hat keine SetReplyTo-Methode, und auch OnBeforeSendEmail reicht das Email Message-Objekt durch, ohne Reply-To zu exponieren. Sobald Microsoft eine Plattform-Schnittstelle dafür liefert, ergänzen wir das Feld.
Best Practices
- Nutze SmartFields für Adressen, Betreff und Inhalt – damit wird der Schritt mandantenübergreifend wiederverwendbar.
- Aktiviere den Testmodus in Sandbox-Mandanten, bevor du Produktiv-Flows importierst – so gehen Testläufe nie an echte Kunden.
- Verkette E-Mail senden hinter PDF-Dokument erstellen – verwende den
Document-Referenz-Output des PDF-Schritts als Verweis-Selektor in einer Anhang-Zeile. Das ist der kanonische Weg, generierte Dokumente per Mail zu versenden. - Hänge ein Array von Dokumenten an, indem du einen Verweis-Selektor auf ein Array-typisiertes SmartField setzt – z. B. den Iterator einer For-Each-Schleife. Jeder Iterations-Datensatz wird zu einem Anhang.
- Nutze die Seite "Gesendete E-Mails" zur Inspektion – der
sentEmailId-Output ist die Message-GUID, dieselbe ID wird auf der BC-Standardseite Gesendete E-Mails angezeigt.