Zum Hauptinhalt springen

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. Willst du eine Datei anhängen, die ein HTTP-Anfrage-Schritt heruntergeladen hat, nimm dessen {{<slug>.responseBody}} als Inhalt – er wird als Base64 eingefügt und kommt Byte für Byte an.
  • 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 als Sent 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​

  1. Der Schritt liest seine Konfiguration (Konto, Empfänger, Betreff, Inhalt, Anhänge).
  2. AutoFlow-Setup → Testmodus wird geprüft – siehe unten.
  3. Empfänger werden auf Wohlgeformtheit geprüft (jeder nicht-leere Eintrag muss wie eine Mail-Adresse aussehen).
  4. Das konfigurierte Konto wird auf aktive Registrierung geprüft; fehlt es oder ist es inaktiv, wirft der Schritt einen Fehler.
  5. 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.
  6. Die Nachricht wird über Codeunit "Email Message".Create (HTML-Body) erstellt, Anhänge werden hinzugefügt, und Codeunit Email.Send versendet synchron.
  7. 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.