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.
  • 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.