E-Mail-Versand
E-Mail-Versand
Der gesamte Lisa-Mailversand läuft über Amazon SES - bewusst, weil der frühere Weg über kasserver (All-Inkl) bei Batch-Versand scheiterte.
Warum Amazon SES?
- Symptom 2026-07-15: 8 Webinar-Funnel-Mails kamen nicht an, obwohl Listmonk "200 OK / TX gesendet" meldete. Das Journal (
journalctl -u listmonk-lisa) zeigte:535 5.7.8 Error: authentication failed421 4.7.0 ... too many connections from 87.106.51.21
- Ursache: kasserver erlaubt pro Server-IP nur sehr wenige gleichzeitige SMTP-Verbindungen. Einzelmails gingen durch, Batches sprengten das Limit - teils irreführend als "authentication failed" gemeldet (Zugangsdaten waren korrekt).
- Lösung: SMTP von der bestehenden Listmonk-Instanz übernommen:
email-smtp.eu-central-1.amazonaws.com:587, STARTTLS. SES hat keine Verbindungslimits - Batch-Versand läuft. kasserver + gmail blieben als deaktivierte Fallbacks erhalten.
Der wichtigste Merksatz
Listmonk
sendTx-"200" heißt nur "angenommen", nicht "zugestellt". Bei Sende-Verdacht immerjournalctl -u listmonk-lisaprüfen.
DNS-Absicherung (alles live, propagiert)
- SPF: Root-SPF mit
include:amazonses.com. - DKIM: 3 Easy-DKIM-CNAMEs (
*.dkim.amazonses.com). - MAIL FROM:
ses.lisa.expert(Custom Return-Path, MXfeedback-smtp.eu-central-1.amazonses.com+ eigenes SPF). - DMARC: p=quarantine.
- Verifiziert im SES: lisa.expert (und [email protected] fürs Senden - belegt durch Testmail 2026-07-20).
Versandwege
| Weg | Mechanik | Beispiele |
|---|---|---|
| API-direkt | Backend (email-service.js - nodemailer - SES) | Funnel-Mails, Konto-/Transaktionsmails, Trial-Funnel, Winback |
| Listmonk-Kampagnen | Kampagnen-Engine - SES | Newsletter, Q&A-Reminder, Webinar-Funnel-Stufen |
- Webinar-Funnel: 8 Stufen zeit-relativ zum gewählten Start (Bestätigung sofort, Reminder 2h/1h/30min/15min vorher, "Wir sind live", Nachfass, No-Show).
- Q&A-Reminder: freitags 17:30 "In 30 Min" + 18:00 "Wir sind live".
- Drosselung (Fallback-Pfad):
max_conns 2,app.concurrency 1,message_rate 2.
Postfächer
- Absender:
Lisa <[email protected]>(SES-verifiziert, Standard seit 25.07.). - Empfang: Postfach
[email protected]bei All-Inkl eingerichtet; offen: prüfen, ob [email protected] ebenfalls empfängt. - Funnel-/Konto-Mails nutzen mailto-Abmeldung an [email protected] (Betreff "Abmeldung") - korrekt, da API-direkter Versand kein UnsubscribeURL kennt.
Bekannte Fallen
- Nicht verifizierte Absender stoppen den Versand komplett (SES meldet dann z. B. "554 not verified").
- Nach Backend-Änderungen an Mailtemplates:
pm2 restartdes Backend-Prozesses (Node cached Templates beim Start). - Serien-Mails: subject/html sind Funktionen - das Sende-Skript muss sie aufrufen (mit vollem Payload), sonst wandert Code in Betreff/Body (Vorfall 2026-07-03).
- Zugangsdaten (SES-Credentials, Listmonk-Token): siehe Vault bzw. serverseitige
.env-Dateien (chmod 600).