Das Postmortem war unangenehm. Ein Senior Engineer hatte Code deployed, der Passwort-Reset-E-Mails an die falschen Nutzer schickte. Nicht an zufällige Nutzer—an den vorherigen Nutzer in der Datenbankabfrage. Eine fehlende WHERE-Klausel bedeutete, dass jede Reset-E-Mail an den Nutzer vor demjenigen ging, der sie angefordert hatte. Tausende E-Mails, alle an die falschen Personen.
Der Fix dauerte fünf Minuten. Die Incident Response fünf Tage. Die Wiederherstellung des Vertrauens Monate.
E-Mail-Fehler sind besonders schmerzhaft, weil sie für Nutzer sichtbar, oft irreversibel und mit rechtlichen oder Sicherheitsimplikationen verbunden sind. Das sind die Fehler, die immer wieder in Postmortems, Support-Tickets und nächtlichen Debugging-Sessions auftauchen.
Fehler bei der Authentifizierung
1. SPF nicht aktualisieren, wenn neue Dienste hinzukommen. Du fügst ein neues Marketing-Tool hinzu, es beginnt E-Mails zu senden, und plötzlich fallen deine E-Mails bei SPF durch. Jeder Dienst, der E-Mails als deine Domain sendet, muss in deinem SPF-Record stehen. Pflege eine Liste autorisierter Absender und aktualisiere SPF, wenn sie sich ändert.
2. ~all statt -all in SPF verwenden. Soft Fail (~all) sagt empfangenden Servern: „Das ist möglicherweise nicht autorisiert, aber lehne es nicht ab.“ Das bietet Monitoring, aber keinen Schutz. Verwende Hard Fail (-all), sobald du alle legitimen Absender verifiziert und autorisiert hast.
3. DMARC-Berichte nicht überwachen. Du richtest DMARC mit p=none ein, um Berichte zu sammeln, schaust sie dir dann aber nie an. Die Berichte zeigen Authentifizierungsfehler und nicht autorisierte Absender—wertvolle Informationen, die nutzlos sind, wenn sie ignoriert werden. Nutze einen DMARC-Analyse-Dienst, um die Berichte umsetzbar zu machen.
4. Die SPF-Grenze von 10 Lookups überschreiten. Jedes include in deinem SPF-Record löst DNS-Lookups aus. Überschreitest du 10, ist dein gesamter SPF-Record ungültig. Sobald du Dienste hinzufügst, erreichst du diese Grenze schneller als erwartet. Nutze SPF Flattening oder Subdomains, um unter der Grenze zu bleiben.
Fehler beim Versand
5. Versand an die falschen Empfänger. Der Klassiker: Eine Test-E-Mail geht an Produktionsnutzer, ein Segmentfilter ist falsch, oder eine Datenbankabfrage liefert unerwartete Ergebnisse. Prüfe Empfängerlisten immer vor dem Versand, besonders bei großen Kampagnen. Verwende Seed-Listen und Stichproben.
6. Bounces nicht behandeln. Harte Bounces bedeuten, dass die Adresse dauerhaft ungültig ist. Weiter an gebouncte Adressen zu senden schadet deiner Reputation und verschwendet Ressourcen. Implementiere Bounce-Handling, das harte Bounces sofort entfernt und weiche Bounces verfolgt, um sie bei Bedarf später zu entfernen.
7. Rate Limits ignorieren. ESPs und empfangende Server haben Rate Limits. Überschreitest du sie, werden deine E-Mails gedrosselt oder abgelehnt. Implementiere ordentliche Queueing-Mechanismen und respektiere Rate Limits. Plötzliche Volumen-Spikes lösen ebenfalls Spamfilter aus—fahre die Sendemenge schrittweise hoch.
8. Versand von einer No-Reply-Adresse. [email protected] signalisiert Empfängern, dass du nichts von ihnen hören willst. Es verhindert Antworten, die wertvolles Feedback enthalten oder auf Zustellprobleme hinweisen könnten. Nutze eine überwachte Adresse, auch wenn du Antworten in ein Ticketsystem leitest.
Inhaltsfehler
9. Kaputte Personalisierung. Wenn Merge Tags fehlschlagen, sehen Empfänger {{first_name}} oder schlimmer noch, die Daten eines anderen Nutzers. Setze immer Fallback-Werte für Personalisierung. Teste mit fehlenden Daten, um zu sehen, was Empfänger tatsächlich erhalten.
10. Ungetestetes HTML-Rendering. Deine E-Mail sieht in Gmail perfekt aus. In Outlook ist sie kaputt. E-Mail-HTML ist nicht Web-HTML—es erfordert Tabellen für das Layout, Inline-Styles und sorgfältiges Testen über Clients hinweg. Nutze vor dem Versand Vorschau-Tools.
11. Fehlende Plain-Text-Version. Manche Empfänger bevorzugen Nur-Text. Einige Spamfilter bestrafen E-Mails, die ausschließlich aus HTML bestehen. Füge immer eine Nur-Text-Alternative hinzu, die tatsächlich lesbar ist, nicht nur ein Dump des HTML-Inhalts.
12. Kaputte Links. Links, die 404 liefern, Weiterleitungsschleifen oder auf Staging-Umgebungen zeigen. Klicke jeden Link vor dem Versand. Automatisiere die Link-Prüfung im Pre-Send-Prozess.
Infrastrukturfehler
13. SMTP-Credentials hartcodieren. Zugangsdaten im Code landen in der Versionskontrolle, in Logs und Fehlermeldungen. Nutze Umgebungsvariablen oder Secrets-Management. Rotiere Credentials, wenn sie jemals offengelegt wurden.
14. Keine Retry-Logik für transiente Fehler. SMTP-Verbindungen schlagen fehl. Server liefern temporäre Fehler. Ohne Retry-Logik werden diese transienten Fehler zu dauerhaften Zustellfehlern. Implementiere exponentielles Backoff und Retry für wiederherstellbare Fehler.
15. Synchrone E-Mail-Zustellung. E-Mails im Request/Response-Zyklus zu senden macht deine Anwendung langsam und fragil. Wenn der E-Mail-Server langsam oder down ist, ist deine Anwendung langsam oder down. Nutze eine Queue für den E-Mail-Versand—Anfrage annehmen, E-Mail in die Queue stellen, sofort zurückkehren.
Der Meta-Fehler
Der größte Fehler ist, E-Mail als etwas Einfaches zu behandeln. „Einfach eine E-Mail senden“ klingt trivial, bis du um 2 Uhr morgens Zustellbarkeitsprobleme debuggst, der Rechtsabteilung erklärst, warum das Unsubscribe nicht funktioniert, oder Kunden mitteilst, dass ihre Passwort-Resets bei Fremden gelandet sind.
E-Mail ist ein verteiltes System mit unzuverlässigen Komponenten, inkonsistenten Implementierungen und hohen Stakes. Behandle es mit derselben Strenge wie jedes kritische System: Testing, Monitoring, Error Handling und Incident Response.
Strategien zur Vermeidung
Checklists. Eine Checkliste vor dem Versand fängt offensichtliche Fehler ab, bevor sie Empfänger erreichen. Mach sie obligatorisch, nicht optional.
Testing-Environments. Teste niemals mit Produktivdaten oder Produktivempfängern. Nutze dedizierte Testumgebungen mit Fake-Daten und internen Adressen.
Gestaffelte Rollouts. Für große Kampagnen: Sende zunächst an einen kleinen Prozentsatz. Verifiziere, dass alles funktioniert, bevor du an die gesamte Liste sendest.
Monitoring. Verfolge Zustellraten, Bounce-Raten und Beschwerderaten. Auffälligkeiten weisen auf Probleme hin—erkenne sie frühzeitig.
Code Review. Codeänderungen rund um E-Mail verdienen besondere Aufmerksamkeit. Ein Bug im E-Mail-Code betrifft Nutzer direkt und sichtbar.
Incident Response. Wisse, was zu tun ist, wenn E-Mail schiefgeht. Wer kann eine Kampagne während des Versands stoppen? Wie kommunizierst du mit betroffenen Nutzern? Plane, bevor du es brauchst.
Frequently asked questions
Was ist der häufigste E-Mail-Fehler, den du siehst?
Kaputte Personalisierung und Versand an falsche Empfänger sind die häufigsten Fehler mit großer Wirkung. Sie sind für Nutzer sichtbar und oft peinlich. Fehlkonfiguration bei der Authentifizierung ist der häufigste Fehler mit geringer Sichtbarkeit—sie schadet still der Zustellbarkeit, ohne offensichtliche Symptome.
Wie verhindere ich, dass Test-E-Mails an Produktionsnutzer gehen?
Nutze getrennte Umgebungen mit separaten Empfängerlisten. Implementiere Schutzmechanismen im Code, die Produktivsendungen aus Nicht-Produktionsumgebungen verhindern. Einige Teams verwenden E-Mail-Interception in Nicht-Produktionsumgebungen, um alle ausgehenden E-Mails abzufangen.
Was soll ich tun, wenn ich eine E-Mail an die falschen Personen gesendet habe?
Stoppe zuerst alle laufenden Sendungen. Bewerte dann die Auswirkungen—welche Informationen wurden offengelegt? wer ist betroffen? Kommuniziere transparent mit betroffenen Nutzern. Dokumentiere den Vorfall und implementiere Präventionsmaßnahmen. Bei ernsten Vorfällen binde Rechts- und Sicherheitsteams ein.
Woran erkenne ich, ob meine E-Mails tatsächlich zugestellt werden?
Die Zustellrate (von empfangenden Servern akzeptiert) ist ein Anfang, garantiert aber keine Platzierung im Posteingang. Überwache Öffnungsraten auf plötzliche Einbrüche. Nutze Seed-List-Tests, um die tatsächliche Inbox-Platzierung zu prüfen. Richte Google Postmaster Tools für Gmail-spezifische Einblicke ein.