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 |
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:
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.
Die Datenquellen des Moduls sind eine oder mehrere Tabellen, die alle in derselben Datenbank liegen müssen und in der Datenbankabfrage verwendet werden.
Das Modul erwartet ein einzelnes E-Mailadressobjekt (sqts_object_type_id = 12) mit einer oder mehreren E-Mailadressen, die durch Komma getrennt sind.
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 enthalten Daten, die dynamisch an unterschiedlichen Stellen verwendet werden können. In den folgenden Nachrichtenfeldern können Variablen benutzt werden:
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.
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".
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:
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! |
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.
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' |
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
|
<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
|
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.
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.
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:
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:
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.