Worum es geht
Zwischen „eine Registrierung braucht eine Mail“ und „die Mail liegt im Postfach“ liegen drei Schritte. Das Modul, das die Mail braucht, sagt was gesagt werden soll. cias-notification entscheidet, wie: Es sucht die Vorlage, füllt sie aus und verschickt sie.
Vom Anlass zur Mail
-
1CIASdie Registrierung stellt den Auftrag zusammen: welche Mail, an wen, Sprache, Mandant, Anwendung, Ablauf und der Kontext mit den Platzhaltern
-
2Hookjeder Registrierungs-Hook darf den Auftrag ergänzen, etwa um Markenname und Logo
-
3
-
4CIAS→E-Mailverschickt die fertige Mail über SMTP, oder schreibt nur den Betreff ins LogErgebnis: Mail verschickt
Die Versandarten
Wann: codamai.cias.notification.mail: smtp
CIAS verschickt über den Mailserver, den Spring Boot mit spring.mail.host, port, username und password kennt. Der Absender steht in codamai.cias.notification.mail.from; ohne ihn startet die Anwendung nicht. Eine HTML-Mail geht als zwei Teile raus: HTML und eine daraus gewonnene reine Textfassung. Eine reine Textmail geht als ein Teil.
Ergebnis: Mail im Postfach. Scheitert der Server, scheitert der Aufruf, der die Mail ausgelöst hat. Nur bei der Willkommensmail ist die Registrierung trotzdem fertig
Wann: codamai.cias.notification.mail: log
Nichts wird verschickt. CIAS schreibt für jede Mail eine Warnung mit dem Betreff ins Log. Den Text nicht: Er kann einen Einmal-Link enthalten. Gedacht für die Entwicklung.
Ergebnis: Jeder Ablauf meldet Erfolg, aber niemand bekommt eine Mail
Wann: codamai.cias.notification.enabled: false
Das Modul tut nichts. Wer eine Mail verschicken will, bekommt einen Fehler, statt dass die Mail still verschwindet. Die Verwaltung der Vorlagen antwortet mit 404.
Ergebnis: Fehler beim Versuch zu verschicken
Die Einstellungen
| Einstellung | Bedeutung | eigenständiges CIAS | im Hub-Backend |
|---|---|---|---|
codamai.cias.notification.enabled | Modul an oder aus | true | folgt CIAS_REGISTRATION |
codamai.cias.notification.mail | smtp oder log | smtp | CIAS_MAIL, Standard log |
codamai.cias.notification.mail.from | Absenderadresse, nur bei smtp | aus der Umgebung | CODAMAI_CIAS_NOTIFICATION_MAIL_FROM |
spring.mail.* | der Mailserver | aus der Umgebung | SPRING_MAIL_HOST, _PORT, _USERNAME, _PASSWORD |
codamai.cias.notification.persistence | jpa: alle Vorlagen in der System-Datenbank, beim Start aus der Auslieferung übernommen | jpa | jpa |
codamai.cias.notification.editor-roles | wer jede Vorlage ändern darf (Umgebung CIAS_NOTIFICATION_EDITOR_ROLES) | platform-admin,mail-template-admin | Plattform-Administrator-Rollen, dazu dieselbe Einstellung |
codamai.cias.notification.rest | Verwaltung der Vorlagen über HTTP | true | folgt CIAS_REGISTRATION |
codamai.cias.notification.fallback-language | Sprache der letzten Stufe der Suche | Deutsch | Deutsch |
Ohne persistence: jpa liegen keine Vorlagen in der Datenbank, und es lässt sich nichts bearbeiten. Die mitgelieferten gelten trotzdem, Mails gehen weiter raus.
Branding: Logo und Farben als Daten
Ein Kunde will seine Mails mit eigenem Namen, Logo und Farben. Dafür gibt es zwei Wege:
Wann: Viele Kunden, jeder mit eigenem Namen und Logo, aber gleichem Wortlaut.
Ein Registrierungs-Hook ergänzt in beforeNotification den Kontext, etwa um brandName, logoUrl und primaryColor, passend zum Mandanten. Eine Vorlage je Mail und Sprache liest diese Werte. So gibt es keine hundert Kopien derselben Mail, die mit der Zeit auseinanderlaufen.
Ergebnis: ein Wortlaut, viele Marken
Wann: Ein Kunde will andere Worte, nicht nur ein anderes Logo.
Eine Vorlage für diesen Mandanten speichern, siehe Vorlagen bearbeiten. Sie gilt nur für diesen Kunden, in jedem Produkt.
Ergebnis: eigener Wortlaut für einen Kunden
Die mitgelieferten Vorlagen sind reiner Text und lesen keine Markenwerte. Wer Branding über den Kontext nutzt, ändert also die Standardfassung so, dass sie brandName und die anderen Werte einsetzt. Mails der Benutzerverwaltung (PASSWORD_SETUP) laufen nicht über Registrierungs-Hooks; sie bekommen Branding nur über eine Vorlage.
| Anderes Aussehen? | Andere Worte? | Weg |
|---|---|---|
| ja | nein | Kontext über einen Hook, eine gemeinsame Vorlage |
| – | ja | eigene Vorlage für den Mandanten |
| nein | nein | nichts tun, die Vorlage der Installation gilt |
Sprachen
Jede Mail hat eine Sprache. Bei der Registrierung kommt sie aus der Anfrage (locale), ohne Angabe ist es Deutsch. CIAS liefert jede Vorlage auf Deutsch und Englisch aus. Für jede weitere Sprache speicherst du eigene Vorlagen. Fehlt eine Sprache, geht die Mail in der Rückfallsprache raus.