
dmarc=fail trotz SPF und DKIM pass: Ursachen und Behebung
Authentication-Results: mx.empfaenger.example;
spf=pass smtp.mailfrom=bounce.versanddienst.example;
dkim=pass header.d=versanddienst.example header.s=s1;
dmarc=fail (p=quarantine) header.from=beispiel.at
So sieht der Fall aus, um den es hier geht, als Beispiel mit Beispieldomains. Zwei Prüfungen bestanden, das Ergebnis trotzdem fail. Kein Widerspruch, sondern die Regel: DMARC zählt ein pass nur, wenn die geprüfte Domain zur Domain im From: passt. Hier hat SPF die Umschlagadresse des Versanddienstes geprüft, DKIM die Signatur des Versanddienstes. Mit beispiel.at hat beides nichts zu tun.
Den Grundsatz, dass eine Mail zwei Absender hat, den sichtbaren und den im Umschlag, erklärt DMARC einrichten. Was bei einem gescheiterten DKIM selbst passiert, steht in DKIM-Selector finden. Hier geht es nur um die Fehlersuche, wenn am Ende dmarc=fail steht.
Was DMARC tatsächlich vergleicht#
Drei Angaben aus dem Header, alle in Authentication-Results:
| Angabe | Woher | Geprüft von |
|---|---|---|
header.from | die Domain im sichtbaren From: | DMARC, als Maßstab |
smtp.mailfrom | die Umschlagadresse, im Header als Return-Path | SPF |
header.d | die Domain, mit der signiert wurde | DKIM |
DMARC besteht, wenn mindestens eines gilt: SPF ist pass und smtp.mailfrom passt zu header.from, oder DKIM ist pass und header.d passt zu header.from. „Passt“ heißt im Normalfall, dass beide dieselbe Organisationsdomain haben. bounce.beispiel.at passt zu beispiel.at, beispiel-newsletter.at nicht. RFC 9989 nennt das „relaxed alignment“, und das ist die Vorgabe, solange im DMARC-Eintrag nichts anderes steht.
Steht dort aspf=s oder adkim=s, verlangt die Domain eine exakte Übereinstimmung. Dann scheitert auch bounce.beispiel.at gegen beispiel.at. Wer den Tag nicht bewusst gesetzt hat, sollte ihn entfernen.
Fehlersuche in fünf Schritten#
1. Den Header der betroffenen Mail holen. Am besten von einer Mail, die beim Empfänger tatsächlich durchgefallen ist, oder eine Testmail an ein Gmail- oder Outlook-Postfach schicken und dort den Originalheader öffnen. Wie das geht und welche Zeile vom eigenen Empfangsserver stammt, steht in E-Mail-Header lesen.
2. Die drei Domains nebeneinanderlegen. header.from, smtp.mailfrom und jedes header.d aus der Authentication-Results-Zeile des Empfängers abschreiben, nicht aus den eigenen Kopfzeilen des Absenders.
3. DKIM zuerst. Gibt es ein dkim=pass mit einem header.d, das zur Absenderdomain passt? Dann sollte DMARC bestehen. Tut es das nicht, ist fast immer adkim=s gesetzt und die Signatur gilt für eine Subdomain. Gibt es nur dkim=pass für fremde Domains, fehlt beim Versanddienst die eigene Absenderdomain. Steht dkim=fail, ist die Signatur unterwegs gebrochen oder der Schlüssel fehlt, dann weiter in DKIM-Selector finden.
4. Dann SPF. spf=pass mit passender smtp.mailfrom reicht für DMARC. spf=pass mit fremder Domain reicht nicht, egal wie oft der Dienst im eigenen SPF-Eintrag steht. Steht spf=fail oder softfail bei der eigenen Domain, sendet ein Server, der im SPF-Eintrag fehlt. Steht permerror, ist der Eintrag kaputt, meist zu viele Abfragen oder zwei Einträge, siehe SPF-Eintrag erstellen.
5. Den Weg prüfen. Bestehen beim Absender beide und beim Empfänger keine, lag eine Station dazwischen. Die Received-Zeilen zeigen, ob die Mail über eine Weiterleitung, eine Mailingliste oder ein Sicherheitsgateway lief.
Die häufigsten Ursachen#
| Ursache | Wie es im Header aussieht | Was hilft |
|---|---|---|
| Newsletter-, Rechnungs- oder CRM-Dienst ohne eigene Absenderdomain | spf=pass und dkim=pass, beide für die Domain des Dienstes | Beim Dienst die eigene Domain als Absenderdomain einrichten: DKIM-Einträge (meist CNAME) und, wo angeboten, eine eigene Bounce-Domain |
Kontaktformular setzt die Adresse des Besuchers als From: | header.from ist die Domain des Besuchers, etwa ein Gmail-Konto, SPF und DKIM gelten deiner Domain | Formular so einstellen, dass From: eine eigene Adresse ist und die Besucheradresse ins Reply-To: kommt |
| Microsoft 365 ohne DKIM für die eigene Domain | dkim=none, spf=pass mit der eigenen Domain, bis eine Weiterleitung SPF bricht | DKIM für die eigene Domain einschalten: zwei CNAME-Einträge selector1._domainkey und selector2._domainkey |
| Weiterleitung, etwa an eine private Adresse | spf=fail beim Endempfänger, dkim=pass bleibt meist | DKIM für die eigene Domain sicherstellen; ohne DKIM besteht weitergeleitete Post nie |
| Mailingliste, die Betreff oder Fußzeile ändert | dkim=fail (body hash did not verify), spf für die Liste | Beim Absender nichts. Listen schreiben heute meist das From: um. Bei eigener Domain mit p=reject: siehe unten |
| Strenge Ausrichtung | aspf=s oder adkim=s im DMARC-Eintrag, Domains unterscheiden sich nur in der Subdomain | Tag entfernen, die Vorgabe r reicht fast immer |
Zwei Zeilen brauchen eine Erklärung. Das Kontaktformular ist der häufigste Fall, den man nicht im Header des Newsletters, sondern in der eigenen Inbox sieht: Der Server der Website schickt eine Mail mit From: kundin@web.de an das eigene Postfach. Der Webserver ist kein Server von web.de, also besteht für web.de weder SPF noch DKIM. Der eigene Empfangsserver sieht eine gefälschte web.de-Mail, und web.de verlangt in seinem DMARC-Eintrag p=quarantine, GMX ebenso, Yahoo sogar p=reject (abgefragt am 05.10.2026). Die Anfrage landet im Spam-Ordner oder gar nicht.
Microsoft 365 signiert Mails einer eigenen Domain laut Microsoft erst, wenn DKIM für sie eingerichtet ist. Bis dahin hängt DMARC allein an SPF. Das geht gut, bis jemand die Mail weiterleitet. Dann kommt sie von einem fremden Server, SPF scheitert, und ohne Signatur bleibt nichts.

Weiterleitungen und Mailinglisten#
RFC 9989 widmet dem Problem einen eigenen Abschnitt und rechnet es offen vor. Eine Bank schickt an jones@alumni.example.edu, eine Adresse, die automatisch weiterleitet. Beim Endempfänger kommt die Mail von einem Server der Universität, nicht der Bank. SPF scheitert, solange die Weiterleitung die Umschlagadresse nicht umschreibt. DKIM bleibt dagegen „im Allgemeinen gültig“. Daraus folgt die schärfste Regel des Standards: Wer p=reject veröffentlicht, darf sich nicht allein auf SPF verlassen und muss jede Mail mit DKIM signieren.
Mailinglisten ändern Mails, hängen eine Fußzeile an oder setzen den Listennamen in den Betreff, und brechen damit DKIM. Laut RFC 9989 haben die Programme für Mailinglisten in den zehn Jahren seit den ersten p=reject-Richtlinien großer Anbieter alle einen Ausweg eingebaut: Sie setzen ihre eigene Adresse ins From: oder schreiben die Adresse des Autors um. ARC, ein Verfahren, das den Prüfstand einer Zwischenstation mitreicht, sollte das Problem technisch lösen. Laut RFC 9989 hat sich bisher keines dieser Verfahren breit durchgesetzt.
Für die eigene Domain heißt das: Bei Mitarbeitenden, die in Fachlisten und Verbandsverteilern schreiben, ist p=quarantine oft die bessere Endstufe als reject. Warum, steht in DMARC-Policy: none, quarantine oder reject.
Eigene Auswertung: 600 Mails im Posteingang#
In eigener Sache: Für den Beitrag über das Header-Lesen habe ich die Kopfzeilen der letzten 600 Mails aus meinem eigenen Posteingang gelesen, eingegangen zwischen 20.09. und 03.10.2026, nur lesend abgeholt. Am 05.10.2026 habe ich dieselben Daten noch einmal ausgewertet, diesmal mit der Frage: Woran hing jedes dmarc=pass? Gezählt ist die Authentication-Results-Zeile meines Empfangsservers, verglichen nach Organisationsdomain.
- 559 Mails haben DMARC bestanden, keine ist mit
failgekommen. 2 Mails trugen keine Prüfzeile meines Servers. - 411 bestanden doppelt, mit ausgerichtetem SPF und ausgerichtetem DKIM.
- 144 bestanden nur über DKIM. Bei 141 davon stand
spf=pass, aber für die Umschlagadresse des Versanddienstes. Das ist der Normalfall bei Newslettern und Plattformen und völlig in Ordnung, solange die Signatur hält. Wird eine dieser Mails weitergeleitet oder über eine Liste verteilt, die den Text ändert, steht dortdmarc=fail. - 4 bestanden nur über SPF, ohne passende Signatur. Sie überstehen keine einzige Weiterleitung.
- 39 Mails kamen von Domains ohne DMARC-Eintrag (
dmarc=none). 21 davon hätten bestanden, wenn es einen gäbe. 18 wären gescheitert, 13 davon mit genau dem Bild vom Anfang:pass, aber für eine fremde Domain.
Ein dmarc=fail kam in diesen zwei Wochen nicht vor, und das überrascht nicht: Was von großen Plattformen kommt, ist meist sauber eingerichtet, und was durchfällt, liegt oft gar nicht im Posteingang. Die Zahl, die zählt, sind die 148 Mails, die auf einem einzigen Bein standen. Absender nenne ich keine.
Was nicht hilft#
Den Dienst ein zweites Mal in den SPF-Eintrag schreiben. SPF prüft die Umschlagadresse. Gehört die dem Dienst, nützt jeder Eintrag in deinem SPF nichts für DMARC.
p=none setzen, damit der Fehler verschwindet. Das fail bleibt, nur die Folge ändert sich. Und gefälschte Mails mit deiner Adresse kommen wieder an, siehe E-Mail-Spoofing.
Den DMARC-Eintrag löschen. Dann steht beim Empfänger dmarc=none. Seit Februar 2024 verlangt Google von Massenversendern einen DMARC-Eintrag, wer ihn löscht, bekommt andere Rückläufer, siehe E-Mail abgelehnt: 550 5.7.1.
Eine dmarc=fail-Mail beim Empfänger auf die Sicherheitsliste setzen lassen. Das verschiebt das Problem auf jeden einzelnen Empfänger.
Häufige Fragen#
Was bedeutet dmarc=fail?
Die Mail hat weder ein SPF-Ergebnis noch eine DKIM-Signatur vorzuweisen, die bestanden hat und zur Domain im From: passt. Was der Empfänger daraus macht, bestimmt die Richtlinie der Absenderdomain: bei p=none meist nichts, bei quarantine Spam-Ordner, bei reject Ablehnung.
Warum dmarc=fail, obwohl spf=pass dasteht?
Weil SPF die Umschlagadresse prüft und nicht den sichtbaren Absender. Gehört die Umschlagadresse einem Versanddienst, besteht SPF für dessen Domain. Für DMARC zählt das nicht.
Was ist DMARC-Alignment?
Die Bedingung, dass die von SPF oder DKIM geprüfte Domain zur Domain im From: passt. Im Normalfall reicht dieselbe Organisationsdomain, bei aspf=s oder adkim=s muss sie exakt gleich sein.
Muss ich bei dmarc=fail action=none etwas tun?
Wenn es eine eigene Mail ist, ja. action=none heißt nur, dass deine Richtlinie noch auf none steht. Nach dem Umstellen auf quarantine landet dieselbe Mail im Spam-Ordner. Welche Versandwege so aussehen, zeigen die DMARC-Berichte.
Wenn du es nicht selbst machen willst#
In eigener Sache: cyberscale bin ich, Stefan Haun aus Tirol. Das Paket E-Mail-Schutz findet über die DMARC-Berichte jeden Versandweg, der durchfällt, richtet beim Dienst die eigene Absenderdomain ein und stellt die Richtlinie danach Stufe für Stufe um. Den Stand der Domain zeigt kostenlos der E-Mail-Check, den Eintrag erzeugt der DMARC-Generator.
Stand 05.10.2026. Quellen an diesem Tag abgerufen, Auswertung am 05.10.2026.
Quellen (7)
- RFC 9989: DMARC (Mai 2026): Identifier Alignment, relaxed und strict (Abschnitt 3.2.10, 4.4), Organisationsdomain (3.2.14),
aspfundadkimmit Vorgaber(4.7), Weiterleitungen, Mailinglisten, ARC und DKIM-Pflicht beip=reject(7.4) - RFC 7208: SPF: geprüft werden HELO und MAIL FROM, nicht das
From:im Header (2.3, 2.4) - RFC 8601: Authentication-Results: Aufbau der Zeile,
smtp.mailfrom,header.d - Microsoft: How to use DKIM for email in your custom domain: eigene Domains werden erst nach Einrichtung signiert, CNAME
selector1undselector2 - Microsoft: Anti-spam message headers:
dmarc=fail action=…,compauth - Google: Email sender guidelines: DMARC-Eintrag für Massenversender seit 01.02.2024
- Eigene Auswertung:
Authentication-Resultsdes eigenen Empfangsservers in 600 Mails aus dem eigenen Posteingang (20.09. bis 03.10.2026), Ausrichtung nach Organisationsdomain vonheader.from,smtp.mailfromundheader.d, ausgewertet am 05.10.2026. Veröffentlicht werden nur Summen, keine Absender.
Weiterlesen
Kommentare
Gespeichert werden nur dein Name und dein Text — keine E-Mail-Adresse, keine IP-Adresse, kein Cookie. Jeder Kommentar wird vor der Veröffentlichung gelesen; das dauert meist einen Tag. Näheres in der Datenschutzerklärung.