Send E-Mail

Das Modul "Send E-Mail" sendet eine E-Mail an einen oder mehrere Empfänger. Als Attribute erwartet das Modul Daten wie die Mailadresse des Senders, Betreff der Mail, Inhalt der Mail usw. Das Modul kann verwendet werden, um Benachrichtigungen oder Reports zu verschicken. Diese können auch Anlagen in verschiedenen Formaten enthalten.

Name Bedeutung
Modul Send E-Mail
Modulklasse DsModSendMail
Typ Java
Zweck Versand von E-Mails mit oder ohne Anhängen für Benachrichtigungen, Reports u.Ä.
Transformationscode Datenbankabfrage zur Steuerung
Quellen Eine oder mehrere Quelltabellen in einer Datenbank
Ziel Ein oder mehrere E-Mailempfänger

Beschreibung

Bei Ausführung des Send E-Mail Moduls werden E-Mails an einen oder mehrere E-Mailempfänger verschickt. Um die E-Mails und optionale Anhänge aufzubauen, werden die Attribute, das Ziel aus dem grafischen Modell sowie die Datenbankabfrage verwendet.

Im einfachsten Anwendungsfall können alle Attribute mit statischen Daten versehen werden. Für komplexere Szenarien lassen sich dafür auch Variablen verwenden, die durch die Datenbankabfrage mit Werten befüllt werden.

Grundsätzlich bestimmt die Datenbankabfrage, wie viele E-Mails versendet werden sollen. Für jede Ergebniszeile der Abfrage wird eine E-Mail aufgebaut und verschickt.

Ein einfaches Beispiel könnte wie folgt aussehen: In der Mitte der Abbildung sieht man eine Transformation zum Versenden einer E-Mail mit Quelle und Ziel. Links unten wird das Zielobjekt angezeigt. Es ist vom Typ Email und enthält eine Empfängeradresse. Rechts unten sind die Details der Transformation "Simple Send" mit ihren Attributen und ihrem Transformationscode zu sehen:   Verschicken einer statischen E-Mail

Die E-Mailparameter wie Absenderadresse, Absendername (Alias), Betreff und Inhalt sind mit festen Daten versehen. Die Datenbankabfrage ist eine Dummy-Abfrage. Sie liefert nur eine Zeile zurück, womit auch nur eine E-Mail versendet wird.

Datenquellen

Die Datenquellen des Moduls sind eine oder mehrere Tabellen, die alle in derselben Datenbank liegen müssen und in der Datenbankabfrage verwendet werden.

Datenziel

Das Modul erwartet ein einzelnes E-Mailadressobjekt (sqts_object_type_id = 12) mit einer oder mehreren E-Mailadressen, die durch Komma getrennt sind.

Attribute

Das Modul besitzt folgende Attribute:

Name Typ
Sender Address E-Mailadresse des Absenders, die beim E-Mail Versand verwendet wird.
Sender Alias Aliasname des Absenders. Dieser Alias wird dem Empfänger zusätzlich zur E-Mailadresse des Absenders angezeigt.
Subject Betreffzeile der zu versendenden E-Mail(s).
Mail Body Nachrichteninhalt der zu versendenden E-Mail(s).
Mail Body Mime Type Mimetype des Nachrichtentextes.
Attachment Columns Kommaseparierte Liste (ohne Leerzeichen) von Namen, die als Platzhalter für Dateianhänge verwendet werden. Jeder Name definiert und erzeugt einen Dateianhang.

Variablen

Variablen enthalten Daten, die dynamisch an unterschiedlichen Stellen verwendet werden können. In den folgenden Nachrichtenfeldern können Variablen benutzt werden:

  • Empfängerlisten
  • Betreffzeile (Subject)
  • Nachrichteninhalt (Mail Body)

Eine Variable wird durch ihren Namen definiert und mit einem vorangestellten Dollarzeichen und geschweiften Klammern verwendet. Alle Spalten aus der Datenbankabfrage stellen Variablen dar, die an den genannten Stellen benutzt werden können.

Beispiel

Ein Beispiel für die Verwendung von Variablen ist in der nächsten Abbildung zu sehen. Die Transformation "Send Dynamic Mail" verwendet ein Zielobjekt vom Typ Mail mit einer Variablen "mail_recipients" als E-Mailadresse (links unten). Auch die Attribute "Subject" und "Mail Body" benutzen Variablen, nämlich "mail_subject" und "mail_body".

Variablen

Alle Variablen werden durch die Datenbankabfrage erzeugt. Dazu werden die entsprechenden Spaltennamen "mail_recipients", "mail_subject" und "mail_body" in der Abfrage angegeben. Die Daten selbst stammen aus der Steuertabelle "report_control", die so aussieht:

Report Control Table

Das Beispiel generiert damit drei E-Mails:

Empfänger Betreff Nachrichtentexte
team1@example.com Welcome ... Hello Team 1, welcome to the world of datasqill
team2@example.com Todos Hello Team 2, please remember the todos!
team3@example.com Thank Hello Team 3, thanks to all for a good job!

Ersetzen innerhalb von Texten

Variablen müssen nicht ein gesamtes Nachrichtenfeld ersetzen. Es ist auch mögliche nur Teile zu ersetzen, wie zum Beispiel in

Mail Body: Guten Tag, der Report wurde heute, ${report_date}, um ${report_time} erstellt.

Formatierung

Variablen können formatiert werden. Dazu muss man eine Formatanweisung als Präfix bei der Verwendung der Variablen voranstellen wie etwa ${date:report_date}. Folgende Präfixe können verwendet werden:

Präfix Formatierung Ausgabebeispiel
${date:var} Formatiert den Wert der Variablen "var" als Datum im Format "DATE '%4d-%02d-%02d'" DATE '2021-10-09'
${timestamp:var} Formatiert den Wert der Variablen "var" als Zeitstempel im Format "TIMESTAMP '%4d-%02d-%02d %02d:%02d:%02d'" TIMESTAMP '2021-10-09 22:05:12'
${number:var} Formatiert den Wert der Variablen "var" als Zahl (ohne Anführungsstriche) 34
${string:var} Formatiert den Wert der Variablen "var" als Text (mit Anführungsstrichen) '34'

Dateianhänge

Zusätzlich zum Betreff und zum Nachrichtentext können Anhänge für eine E-Mail erzeugt werden. Dazu werden spezielle Variablen verwendet. Diese Variablen werden zunächst über eine kommaseparierte Liste unter "Attachment Columns" mit jeweils einem Variablennamen definiert. Jeder angegebene Name dient als Basisname bei der Spezifikation des Anhangs (im Folgenden <basis>). Für jeden Basisname werden dann weitere Variablen über die Datenbankabfrage spezifiziert:

Name Bedeutung
<basis> Variablenname des Anhangs, gleichzeitig Spezifikation des Inhalts
Abhängig von der Art des Anhangs wird hiermit entweder eine Datei, ein String (CHAR, VARCHAR, CLOB) oder ein binäres Objekt (BLOB) mit dem Inhalt des Anhangs angegeben. Diese Spalte muss in der Datenbankabfrage vorhanden sein.
<basis>_name Name des Anhangs in der E-Mail
Wird kein Name angegeben, so wird beim Typ „file“ der Variablenname verwendet. Bei allen übrigen Typen wird in diesem Falle „attachment_“ und die Nummer des Anhangs als Name verwendet.
<basis>_type Spezifikation der Art des Anhangs
  • „char“ = der angegebene Basisname ist eine String-Spalte. Dieser wird als Anhang verschickt. Dieser Anhangstyp wird als Default verwendet, wenn keiner angegeben wurde.
  • „file“ = der angegebene Basisname verweist auf einen Dateipfad (relativ zum Homeverzeichnis des datasqill Users).
  • „bin“ = der angegebene Basisname ist eine Binärspalte (BLOB).
<basis>_mimetype Mimetype des Anhangs
Es können die üblichen Mimetypes wie zum Beispiel "text/plain; charset=UTF-8" angegeben werden. Wenn kein Mimetype angegeben wird, dann werden folgende Defaultwerte verwendet
  • „text/plain“ bei „char“ Anhängen und
  • „application/octet-stream“ bei „bin“ Anhängen.

Für jeden Variablennamen wird ein Anhang an die E-Mail erzeugt. Eine Definition wie

Attachment Columns: logo,report

erzeugt zwei E-Mailanhänge. Die Details jedes Anhangs, also logo_name, logo_type, report_name, report_type usw., müssen über die Datenbankabfrage erzeugt werden.

Beispiele

E-Mail mit Anhang

Das folgende Bildschirmfoto zeigt eine Transformation, die E-Mails mit Excel-Dateien als Anhang versendet (oben im Bild). Links darunter sind die Definition der Steuertabelle "mailing" als Quelle sowie des Ziels "sales@example.com" vom Typ "Email" dargestellt. Rechts unten ist der Inhalt der Transformation mit Attributen und Datenbankabfrage zu sehen.

Send E-Mail Attachment

Der Variablenname das Anhangs lautet "excefile" (siehe "Attachment Columns"). Dazu passend generiert die Datenbankabfrage die Werte für "excelfile", "excelfile_type" und "excelfile_mimetype".

Sieht die Steuertabelle wie folgt aus, werden zwei E-Mails generiert:

Steuertabelle mailing

Die E-Mails haben jeweils einen Anhang, nämlich "revenue.xlsx" und "regions.xlsx". Die entsprechenden Dateien müssen im Homeverzeichnis des datasqill Users liegen, damit der Server sie beim E-Mailversand anhängen kann.

E-Mail mit mehreren Anhängen

Ein komplizierteres Beispiel ist im nächsten Bild dargestellt, bei dem eine E-Mail mit zwei Anhängen versendet wird. Es werden Variablen für E-Mailfelder als auch für die Anhänge verwendet. Alle werden über die Datenbankabfrage mit entsprechenden Werten gefüllt:

Send E-Mail 2 Attachments

Die Variablen 'mail_recipients', 'mail_subject' und 'mail_body' werden verwendet, um die entsprechenden E-Mailfelder zu definieren. Ihre Werte werden mit Hilfe der Datenbankabfrage erzeugt.

Weiterhin werden für jede E-Mail zwei Anhänge erzeugt. Der erste wird durch den Variablennamen 'pdffile' definiert, der zweite durch 'excelfile'.

Für den Variablennamen 'excelfile' werden Dateien aus dem Unterverzeichnis "data/reports/" im Homeverzeichnis des datasqill Users verschickt. Sie sind vom Typ 'file' und haben den Mimetype 'application/excel'.

Für die Variable 'pdffile' wird die Datenbankspalte 'pdffile' abgefragt. Sie liefert den binären Inhalt für die Pdf-Dateien, die zu verschicken sind. Dafür wird als Typ 'bin' verwendet (Datenbankspalte mit binären Daten) und 'application/pdf' als Mimetype.