v1.4: HTML-E-Mail-Benachrichtigungen im Schulportal-Stil
- server/src/mail.js: baueHtmlMail/buttonHtml (600-px-Karte, Kopfzeile in Hinterstein-Farben #22333b + Amber, Zeilen-Tabelle, Status-Box, Zitat-Box, Aktions-Button 'Zum Mieterportal', Footer), immer mit Plain-Text-Fallback - index.js: Ticket, neue Unterhaltung und Antwort versenden HTML + Text (multipart/alternative ueber die Mail-API) - Vorschauen: preview/08-mail-ticket.png, preview/08-mail-nachricht.png - E2E live verifiziert (Zustellung an axel@hocks.eu, status=sent), Doku
This commit is contained in:
@@ -151,13 +151,16 @@ tar -czf mp-dist.tar.gz -C dist .
|
||||
- **Mail-Stack live (seit 02.10.2026):** Container `mp-mail` + `mp-mail-api` laufen
|
||||
auf hocks.eu unter `/opt/mp-mail` (Relay über `hocks-eu.mail.protection.outlook.com`).
|
||||
Testmail und API-`/send` (mit `X-Api-Token`) verifiziert (status=sent); ohne Token 401.
|
||||
- **Mail-Benachrichtigungen (seit v1.2 nginx-Proxy, seit v1.3 serverseitig):** Der
|
||||
Portal-nginx proxiet `POST /api/mail/send` an `http://mp-mail-api:8080/send` mit
|
||||
Token aus `portal.env` (403 für alles außer POST). **Versand aus der Node-API**
|
||||
- **Mail-Benachrichtigungen (seit v1.2 nginx-Proxy, seit v1.3 serverseitig,
|
||||
seit v1.4 im HTML-Format wie im Schulportal):** Der Portal-nginx proxiet
|
||||
`POST /api/mail/send` an `http://mp-mail-api:8080/send` mit Token aus
|
||||
`portal.env` (403 für alles außer POST). **Versand aus der Node-API**
|
||||
(`server/src/mail.js`, fire-and-forget): neue Schadensmeldung → alle aktiven
|
||||
Verwaltungsbenutzer, neue Nachricht/Antwort → Gegenstelle (Mieter ↔ Verwaltung,
|
||||
Auflösung über Wohnungsbezug). E2E verifiziert: Zustellung an axel@hocks.eu
|
||||
mit Postfix status=sent (02.10., 10:42 Uhr).
|
||||
Verwaltungsbenutzer, neue Nachricht/Antwort → Gegenstelle. HTML im
|
||||
Schulportal-Stil (`baueHtmlMail`: 600-px-Karte, Kopfzeile in Hinterstein-
|
||||
Farben #22333b/Amber, Zeilen-Tabelle, Status-Box, Zitat-Box, Button „Zum
|
||||
Mieterportal“, Footer) immer mit Plain-Text-Fallback (multipart/alternative).
|
||||
E2E verifiziert: Zustellung an axel@hocks.eu, Postfix status=sent.
|
||||
|
||||
## 6. Konventionen & Besonderheiten
|
||||
|
||||
@@ -229,6 +232,14 @@ an axel@hocks.eu) E2E verifiziert; Testdaten danach bereinigt. deploy.sh baut
|
||||
das API-Image auf dem Server; `.env`-Symlink auf portal.env für
|
||||
Compose-Interpolation beachten (POSTGRES_PASSWORD!).
|
||||
|
||||
**Erledigt 02.10. (v1.4 live):** HTML-E-Mail-Benachrichtigungen im Schulportal-
|
||||
Stil: `baueHtmlMail`/`buttonHtml` in `server/src/mail.js` (600-px-Karte,
|
||||
Kopfzeile Hinterstein-Farben, Zeilen, Status-Box, Zitat, Aktions-Button, Footer),
|
||||
immer mit Plain-Text-Fallback (multipart/alternative). Umgesetzt für
|
||||
Schadensmeldung, neue Unterhaltung und Antwort. Vorschauen lokal renderbar
|
||||
(`mail-vorschau*.html`, Screenshots in `preview/08-*.png`). Live getestet:
|
||||
Zustellung an axel@hocks.eu status=sent, Test-Ticket bereinigt.
|
||||
|
||||
**Offen:**
|
||||
- Zertifikatserneuerung prüfen (per 01.12.2026): NPM-Renewer sollte cert 9 über HTTP-Challenge
|
||||
erneuern; sonst certbot/webroot + Kopie nach npm-9 wiederholen.
|
||||
|
||||
Reference in New Issue
Block a user