E-Mail ist die Komponente, die Entwickler am längsten für gelöst halten und die am zuverlässigsten still kaputtgeht. Die Registrierungsmail kommt nicht an, der Passwort-Reset landet im Spam, das Kontaktformular meldet Erfolg und niemand liest die Nachricht — und in den Logs steht überall, dass das Versenden geklappt hat.
Das liegt daran, dass “versendet” und “zugestellt” zwei völlig verschiedene Dinge sind. Zwischen beiden liegt eine Bewertungsmaschinerie, über die man als Absender wenig Kontrolle hat, aber deutlich mehr, als die meisten nutzen.
Die drei Einträge, ohne die es nicht funktioniert
Alles beginnt im DNS deiner Domain. Drei Einträge entscheiden darüber, ob dein Empfänger deine Mail überhaupt ernst nimmt.
SPF ist eine Liste der Server, die für deine Domain versenden dürfen. Der empfangende Server schlägt sie nach und vergleicht sie mit dem tatsächlichen Absender. Die häufigste Falle: SPF erlaubt nur einen einzigen solchen Eintrag pro Domain. Wenn du zwei Dienste einträgst, indem du einfach einen zweiten Eintrag anlegst, ist das Ergebnis nicht “beide erlaubt”, sondern ein Fehler — beide Dienste fallen durch. Mehrere Anbieter gehören in einen gemeinsamen Eintrag. Zweite Falle: die Begrenzung auf zehn DNS-Abfragen. Wer über die Jahre fünf Dienste einbindet, überschreitet sie irgendwann, und dann scheitert die Prüfung ohne offensichtlichen Grund.
DKIM ist eine kryptografische Signatur, die dein Versanddienst an jede Mail hängt und die der Empfänger gegen einen öffentlichen Schlüssel in deinem DNS prüft. Sie belegt, dass die Mail unterwegs nicht verändert wurde und tatsächlich von deiner Domain autorisiert ist. DKIM ist wichtiger als SPF, weil es Weiterleitungen übersteht — bei einer weitergeleiteten Mail stimmt die SPF-Prüfung nicht mehr, die Signatur schon.
DMARC ist die Anweisung, was passieren soll, wenn SPF und DKIM nicht zur sichtbaren Absenderadresse passen — nichts tun, in Quarantäne, oder ablehnen. Und es ist der einzige Weg, überhaupt zu erfahren, was mit deinen Mails passiert: Mit einer Berichtsadresse im Eintrag bekommst du regelmäßig Auswertungen darüber, wer in deinem Namen versendet und ob die Prüfungen bestehen.
Der Fahrplan dafür ist immer derselbe: erst DMARC ohne Konsequenz einrichten und Berichte sammeln, dann die Systeme finden, die noch nicht sauber signieren — Buchhaltungssoftware, Newsletter-Tool, das alte Kontaktformular — und erst wenn alles passt, die Regel verschärfen. Wer sofort auf Ablehnen stellt, kappt zuverlässig irgendeinen internen Versand, von dem er nichts wusste.
Transaktionale und Marketing-Mails gehören getrennt
Der wichtigste architektonische Punkt und der, der am häufigsten ignoriert wird: Deine Passwort-Reset-Mail und dein Newsletter dürfen nicht über denselben Weg gehen.
Der Grund ist die Zuverlässigkeitsbewertung, die Anbieter deiner Absender-Identität zuordnen. Newsletter erzeugen naturgemäß Spam-Meldungen und Abmeldungen — auch bei völlig sauberen Listen. Wenn transaktionale Mails über dieselbe Domain und denselben Versandweg laufen, ziehen diese Signale die Zustellbarkeit deiner betriebskritischen Mails mit nach unten. Und die Reihenfolge des Schadens ist unangenehm: Zuerst fällt der Newsletter in den Spam, das merkt man in den Öffnungsraten. Dann fällt die Registrierungsmail hinterher, und das merkt man daran, dass sich niemand mehr anmeldet.
Die praktische Trennung: ein Dienst für Transaktionsmails, ein anderer für Marketing, und getrennte Subdomains als Absender. Beide Wege bekommen eigene DKIM-Schlüssel, beide Reputationen entwickeln sich unabhängig. Das ist kein Luxus, sondern die Standardempfehlung — und es kostet dich einmal eine halbe Stunde DNS-Arbeit.
Ein oft übersehener Nebeneffekt: Versende Transaktionsmails nicht von deiner Hauptdomain-Adresse, aber auch nicht von einer, die nirgends existiert. Antworten auf Systemmails kommen häufiger, als man denkt — eine Adresse, die im Nichts endet, ist schlechter Service und schadet der Bewertung zusätzlich.
Was noch über Zustellbarkeit entscheidet
Technik ist die Voraussetzung, Inhalt und Verhalten sind der Rest.
Reine Bild-Mails ohne Textanteil sind ein klassisches Spam-Signal, ebenso eine einzige große Grafik mit dem gesamten Inhalt darin. Liefere immer eine brauchbare Nur-Text-Fassung mit, nicht nur eine leere Pflichtvariante. Verkürzte Links über allgemeine Kurz-URL-Dienste sind ebenfalls verdächtig, weil sie massenhaft für Missbrauch genutzt werden.
Bei Marketing-Mails kommt die Listenqualität dazu: Ein Anmeldeverfahren mit Bestätigungsmail ist in Deutschland ohnehin die rechtlich sichere Variante und gleichzeitig der beste Schutz vor Falscheingaben und Spam-Fallen-Adressen. Und ein sichtbarer, funktionierender Abmeldelink ist besser als jede Beschwerde, die stattdessen als Spam-Meldung ankommt.
Wenn du eine neue Versanddomain in Betrieb nimmst, steigere die Menge langsam. Eine frische Domain, die am ersten Tag zehntausend Mails verschickt, sieht für jedes Filtersystem aus wie genau das, wonach es sucht.
Was du in deiner Anwendung einbauen solltest
Drei Dinge, die im Code zu oft fehlen:
Erstens: Behandle Zustellprobleme. Dein Versanddienst meldet dir per Rückkanal, wenn eine Adresse dauerhaft nicht existiert oder ein Empfänger sich beschwert. Wenn du das nicht auswertest und weiter an tote Adressen sendest, verschlechterst du aktiv deine Bewertung. Dauerhaft fehlgeschlagene Adressen gehören in deiner Datenbank markiert und aus dem Versand genommen.
Zweitens: Mach Mailversand asynchron und wiederholbar. Ein Versand direkt im Anfrage-Ablauf macht deine Anwendung von der Verfügbarkeit des Mail-Anbieters abhängig und verliert die Nachricht bei jedem Aussetzer. Eine Warteschlange mit ein paar Wiederholungsversuchen löst das.
Drittens: Überwache, dass tatsächlich versendet wird. Der Zustand, den du wirklich fürchten musst, ist nicht der Fehler, sondern die Stille — ein abgelaufener API-Schlüssel, ein aufgebrauchtes Kontingent, ein Warteschlangen-Arbeiter, der nicht mehr läuft. Ein einfacher Alarm auf “seit zwei Stunden keine Mail versendet, obwohl normalerweise welche rausgehen” hätte schon viele stille Ausfälle gefunden.
Und ein letzter, banaler Tipp mit hoher Trefferquote: Wenn eine Mail nicht ankommt, schau zuerst in den Spam-Ordner deines Testkontos und dann in die Kopfzeilen einer tatsächlich angekommenen Mail. Dort steht schwarz auf weiß, ob SPF, DKIM und DMARC bestanden haben. Das beantwortet die halbe Fehlersuche in dreißig Sekunden.
Wenn du gerade an einer Domain sitzt, deren Mails nicht ankommen: Im Discord der Community hat das jeder schon mal debuggt.