Email-Notifikationen

Mit diesem Modul lassen sich wiederkehrende Email einrichten, um z.B.

  • einmal pro Tag über alle aktuellen Bilder informiert zu werden
  • einmal pro Woche eine Übersicht über neue Schlagworte zu bekommen
  • 30 Tage vor Ablauf von Bildrechten darüber informiert zu werden

Die Konfiguration der Email-Notifikation erfolgt in zwei Schritten:

  • Erstellen einer Email-Maske im Creator
  • Konfiguration in Config-Variablen zu welchen Bedingungen Emails verschickt werden

Das Modul gibt es seit Version 4.0.229.

Email-Notifikation wird normalerweise jede Stunde gestartet (von easydb-maintanance) und bei Bedarf werden Emails verschickt. Der Prozess kann per Hand in ezadmin angestoßen werden.

Um dieses Modul zu aktivieren muss in der Konfiguration in /etc/opt/easydb/instances.d/default.conf email_notification=1 gesetzt sein.

Erstellen einer Email-Maske

Die Email-Maske wird im Creator erstellt. Sie muss die Tabelle ansprechen, für die der SELECT die Objekt-IDs für die Notifikationen ermittelt. Sie können auf die Liste der Objekt-IDs mittels der Funktion cell/FUNCTION-render_search_result zugreifen. Die Email-Notifikation legt darin alle IDs ab. Die Email selbst wird mit der ersten ID der zu sendenen Objekt-IDs aufgerufen und steht innerhalb der Email-Maske für OUTPUT zur Verfügung.

Sie können in der Email-Maske Subjekt setzen, dieses wird aber von der Config überschrieben. Genauso verhält es sich mit der Email-Adressen die in "From" und "To" übergeben werden, auch diese werden von der Config bzw. dem SELECT überschrieben.

Per cell/FUNCTION-email/set_header gesetzte Header werden von der Config nicht überschrieben.

Konfiguration

NOTIFICATION_EMAILS

Hier geben sie kommasepariert Namen von Konfigurationen an, für die Notifikationen verschickt werden sollen.

NOTIFICATION_EMAIL.<name>

Diese Variable ist eine Pflichtangabe. Hier selektieren Sie die Objekt-IDs für die Emails verschickt werden sollen. Dabei wird in der 1. Spalte die ID selektiert und in der 2. Spalte ein eindeutiger Identifikations-String (z.B. eine Zeit), die benutzt wird, um Emails nicht doppelt zu verschicken. Ab der 3. Spalte können Email-Empfänger-Adressen selektiert werden, um z.B. nur bestimmte Benutzer über einen Rechteablauf zu informieren.

SELECT id, easydb_create_time FROM "Bilder" WHERE easydb_create_time BETWEEN NOW() AND NOW() - '1 day'::interval

Dieser SELECT holt die IDs aller Bilder die in den vergangenen 24 Stunden in die easydb geladen wurden. Durch die eindeutige easydb_create_time wird für jede Bild-ID nur einmal eine Email verschickt.

Beachten Sie, dass easydb die Information was verschickt wurde nach 60 Tagen löscht.

NOTIFICATION_EMAIL.<name>.EMAIL_MASK

Der Name der Maske im Creator. Dies ist eine Pflichtangabe.

NOTIFICATION_EMAIL.<name>.RECIPIENTS

Der optionale Standard-Empfänger der Email ("To"). Dazu kommen noch alle Email-Adressen, die Sie im SELECT ab der 3. Spalte selektieren. Wenn diese Variable nicht gesetzt wird und im SELECT keine Email-Adresse selektiert ist, wird keine Mail verschickt.

NOTIFICATION_EMAIL.<name>.SUBJECT

Mit dieser optionalen Variable wird der Betreff der Email gesetzt. Sie überschreibt den Betreff der im Creator gesetzt wird oder des per Admin-Variable eingestellten Betreffs, es sei denn im Creator wurde set_header benutzt, um die Admin-Variable explizit in den Header zu schreiben (dann wird der Betreff kommasepariert ergänzt).

NOTIFICATION_EMAIL.<name>.FROM

Mit dieser optionalen Variable wird der Absender der Email gesetzt.

NOTIFICATION_EMAIL.<name>.BATCH_DAYS

Angabe der Wochentage, an denen eine Email verschickt wird. Easydb sammelt anfallende Nachrichten über Objekt-IDs und schickt sie dann in einer Email gemeinsam ab. Die Tage werden kommasepariert angegeben.

# 1=Montag, 2=Dienstag, 3=Mittwoch, 4=Donnerstag, 5=Freitag, 6=Samstag, 7=Sonntag

Wenn diese Variable nicht gesetzt ist, wird an jedem Tag der Woche eine Email verschickt (wenn nötig).

NOTIFICATION_EMAIL.<name>.BATCH_HOURS

Angabe der vollen Stunden, zu denen ein Verschicken der Emails veranlasst wird. Anfallende Emails werden bis zu der angegebenen Stunde gesammelt und gemeinsam verschickt. Jede Stunde muss kommasepariert aufgeführt werden. Eine Kombination von NOTIFICATION_EMAIL.<name>.BATCH_HOURS und NOTIFICATION_EMAIL.<name>.BATCH_DAYS ist möglich. Das folgende Beispiel verschickt Emails zu vollen Stunde in der Arbeitszeit von 9-17 Uhr an jedem Wochentag.

NOTIFICATION_EMAIL.<name>.BATCH_HOURS=9,10,11,12,13,14,15,16,17
NOTIFICATION_EMAIL.<name>.BATCH_DAYS=1,2,3,4,5

Beispiel-Konfiguration

NOTIFICATION_EMAILS=new_images
NOTIFICATION_EMAIL.new_images.subject=Yo Yo
NOTIFICATION_EMAIL.new_images.from=daily@my-easydb.de
NOTIFICATION_EMAIL.new_images=SELECT id, easydb_create_time FROM "Bilder" WHERE easydb_create_time BETWEEN NOW() AND NOW() - '2 days'::interval
NOTIFICATION_EMAIL.new_images.recipients=admin@my-easydb.de
NOTIFICATION_EMAIL.new_images.email_mask=neue_bilder
NOTIFICATION_EMAIL.new_images.batch_hours=10

Im Beispiel wird die im Creator definierte maske neue_bilder an admin@my-easydb.de geschickt und informiert über alle neuen Bilder.