Kostenlos · kein Konto nötig

SPF- und DMARC-Checker

Frag online die SPF-, DMARC-, MTA-STS- und CAA-Einträge einer Domain ab und sieh, wie jeder bewertet wird. Gib die Domain ein, von der du Mails sendest, zum Beispiel example.com statt www.example.com.

Ein kostenloser Check öffentlich zugänglicher Website-Einstellungen. Deine Website wird nicht verändert.

Keine Anmeldung Kein destruktiver Traffic Checks für öffentliche Websites
Eintrags-Referenz

Was jeder Eintrag bewirkt und wie er bewertet wird

Der Checker liest diese Einträge auf dem eingegebenen Hostnamen. Fehlende SPF-, DMARC- und MTA-STS-Einträge werden nur gemeldet, wenn der Host MX-Einträge hat, denn ein Host, der keine Mails empfängt, braucht sie nicht in gleicher Weise.

EintragWo er veröffentlicht wirdSo sieht es gut ausSo bewertet dieser Checker
MXMX-Einträge auf dem Hostnamen.Vorhanden auf Domains, die Mails empfangen.Gezählt und angezeigt; für sich allein nie ein Befund.
SPFEin TXT-Eintrag auf dem Hostnamen, der mit v=spf1 beginnt.Genau ein SPF-Eintrag, der jeden Dienst nennt, der Mails für die Domain sendet.Fehlt, obwohl der Host MX-Einträge hat: mittel. Der Text des Eintrags wird angezeigt.
SPF-all-MechanismusDer letzte Term des SPF-Eintrags.-all oder ~all.+all: hoch. ?all: niedrig. -all und ~all lösen nichts aus.
SPF-DNS-AbfragenDie Terme include, a, mx, ptr, exists und redirect des Eintrags.Höchstens zehn Terme, die eine DNS-Abfrage brauchen.Mehr als zehn im obersten Eintrag: mittel. include:-Ziele werden nicht aufgelöst, verschachtelte Abfragen werden also nicht gezählt.
DMARCEin TXT-Eintrag unter _dmarc.example.com für example.com, der mit v=DMARC1 beginnt.p=quarantine oder p=reject, sobald die Berichte zeigen, dass alle legitimen Mails bestehen.Fehlt, obwohl der Host MX-Einträge hat: mittel. p=none: niedrig. quarantine oder reject: bestanden. sp, pct, rua und Alignment werden nicht ausgewertet. Auf einer Subdomain wenden Empfänger auch die DMARC-Richtlinie der Organisationsdomain an, die diese Prüfung nicht liest.
MTA-STSEin TXT-Eintrag unter _mta-sts.example.com, der mit v=STSv1 beginnt, plus eine Richtliniendatei auf dem mta-sts-Host.Eintrag und Richtliniendatei, nach dem Testen im Modus enforce.Eintrag fehlt, obwohl der Host MX-Einträge hat: niedrig. Geprüft wird nur der DNS-Eintrag; die Richtliniendatei wird nicht abgerufen.
CAACAA-Einträge auf dem Hostnamen.Einträge, die nur die Zertifikatsaussteller nennen, die du nutzt.Irgendein CAA-Eintrag: bestanden. Keiner: niedrig. Der Inhalt wird nicht mit deinem Zertifikat verglichen. Auf einer Subdomain beachten Zertifikatsaussteller auch die CAA-Einträge der übergeordneten Domain, die diese Prüfung nicht liest.
DKIMTXT-Einträge unter selector._domainkey.example.com.Ein Schlüssel für jeden Dienst, der deine Mails signiert.Nicht geprüft: Selector-Namen lassen sich nicht allein aus dem DNS ermitteln.

TLS-Reporting, DNSSEC und BIMI werden nicht geprüft.

So behebst du es

So behebst du häufige SPF- und DMARC-Befunde

Ändere immer nur einen Eintrag und gib dem DNS Zeit, sich zu aktualisieren, bevor du erneut prüfst. Die Beispiele nutzen example.com und Platzhalter-Dienste; ersetze sie durch deine Domain und die Dienste, die deine Mails wirklich senden.

DMARC im Überwachungsmodus veröffentlichen

Lege einen einzigen TXT-Eintrag unter _dmarc der Domain in deiner From-Adresse an. p=none ändert nichts an der Zustellung, und rua bittet Empfänger um Sammelberichte, die zeigen, welche Server Mails im Namen deiner Domain senden und ob sie SPF oder DKIM mit Alignment bestehen. Gehen die Berichte an eine andere Domain, muss diese einen Eintrag veröffentlichen, der sie autorisiert.

; DMARC record for example.com, monitoring only
_dmarc.example.com.  TXT  "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"

; Only if rua points to another domain, for example rua=mailto:reports@example.net,
; example.net publishes:
example.com._report._dmarc.example.net.  TXT  "v=DMARC1"

Erst quarantine, dann reject

Wenn die Berichte zeigen, dass alle legitimen Quellen bestehen, wechsle zu p=quarantine, beobachte die Berichte erneut und gehe dann zu p=reject. RFC 7489 bot pct an, um die Richtlinie nur auf einen Teil der fehlschlagenden Mails anzuwenden. RFC 9989, das sie ersetzt, streicht pct, weil Teilwerte uneinheitlich angewendet wurden, und führt t=y ein, das Empfänger bittet, eine Stufe unter der veröffentlichten Richtlinie anzuwenden. Empfänger, die noch RFC 7489 folgen, ignorieren t=y. Setze deshalb während des Tests zusätzlich pct=0; das fordert dort dieselbe um eine Stufe mildere Behandlung an. Entferne beide Tags, um die Richtlinie durchzusetzen.

; Publish one version at a time, in this order, after p=none
; 1. Quarantine in test mode (t=y, plus pct=0 for RFC 7489 receivers), then in full
_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; t=y; pct=0; rua=mailto:dmarc-reports@example.com"
_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com"
; 2. Reject in test mode, then in full
_dmarc.example.com.  TXT  "v=DMARC1; p=reject; t=y; pct=0; rua=mailto:dmarc-reports@example.com"
_dmarc.example.com.  TXT  "v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com"

Ein SPF-Eintrag pro Domain

Ein Name darf nur einen TXT-Eintrag tragen, der mit v=spf1 beginnt; bei zweien schlägt SPF mit einem permanenten Fehler fehl. Fasse alle Absender in einem Eintrag zusammen. include: prüft den eigenen Eintrag eines Anbieters, und redirect= übergibt die ganze Richtlinie an eine andere Domain, was hilft, wenn mehrere Domains eine Richtlinie teilen. redirect= wird ignoriert, wenn der Eintrag zusätzlich einen all-Term enthält.

; Before: two SPF records on one name (permerror)
example.com.  TXT  "v=spf1 include:_spf.mailhost.example ~all"
example.com.  TXT  "v=spf1 include:spf.newsletter.example ~all"

; After: one record
example.com.  TXT  "v=spf1 include:_spf.mailhost.example include:spf.newsletter.example ~all"

; Another domain that uses the same policy
example.org.  TXT  "v=spf1 redirect=example.com"

Höchstens zehn DNS-Abfragen

SPF erlaubt höchstens zehn Terme, die eine DNS-Abfrage brauchen, gezählt über alle verschachtelten include: include, a, mx, ptr, exists und redirect. Einer mehr, und SPF schlägt mit einem permanenten Fehler fehl. Entferne include für Dienste, die du nicht mehr nutzt, ersetze a und mx durch ip4- oder ip6-Bereiche, die du kontrollierst, streiche ptr und verlege einen Massenversender auf eine Subdomain mit eigenem SPF-Eintrag. Die Adressen eines Anbieters in deinen Eintrag zu kopieren spart ebenfalls Abfragen, doch die Kopie veraltet, sobald der Anbieter sie ändert. Dieser Checker zählt nur die Terme der obersten Ebene.

; One lookup each: include, a, mx, ptr, exists, redirect (plus every lookup inside an include)
; No lookup: ip4, ip6, all

; Before: 4 lookups in the top-level record alone
example.com.       TXT  "v=spf1 a mx include:_spf.mailhost.example include:spf.oldtool.example ~all"

; After: fixed address, unused service removed, bulk mail on its own subdomain
example.com.       TXT  "v=spf1 ip4:192.0.2.10 include:_spf.mailhost.example ~all"
news.example.com.  TXT  "v=spf1 include:spf.newsletter.example ~all"

~all oder -all mit Bedacht wählen

Beende den Eintrag mit ~all (softfail) oder -all (fail), nie mit +all, das jeden Server bestehen lässt. -all ist das strengere Signal, doch ein Empfänger, der SPF früh prüft, kann dann weitergeleitete Mails ablehnen, bevor DMARC ihre gültige DKIM-Signatur sieht. Mit einer durchgesetzten DMARC-Richtlinie überlässt ~all die Entscheidung DMARC. Eine Domain, die keine Mails sendet, kann v=spf1 -all veröffentlichen.

; Choose one ending for example.com, not both
example.com.  TXT  "v=spf1 include:_spf.mailhost.example ~all"
example.com.  TXT  "v=spf1 include:_spf.mailhost.example -all"

; A domain that sends no mail
example.net.  TXT  "v=spf1 -all"

DKIM an deiner From-Domain ausrichten

DMARC besteht, wenn SPF oder DKIM für eine Domain besteht, die zur From-Adresse passt (Alignment). Viele Dienste signieren standardmäßig mit ihrer eigenen Domain; das besteht DKIM, aber nicht das Alignment. Aktiviere in jedem Dienst die Signatur mit deiner eigenen Domain, sodass sie d=example.com trägt, und veröffentliche den Schlüssel oder CNAME, den dir der Dienst nennt, unter seinem Selektor. Relaxed Alignment, die Voreinstellung, akzeptiert jede Subdomain derselben Organisationsdomain; adkim=s und aspf=s verlangen eine exakte Übereinstimmung.

; Key for a sending service, selector s1: a CNAME or a TXT record, as the service says
s1._domainkey.example.com.  CNAME  s1.dkim.mailhost.example.
s1._domainkey.example.com.  TXT    "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOC..."

; Aligned signature in a delivered message: d= matches the From domain
From: news@example.com
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=s1; ...

Eine DNS-Änderung kann so lange wie die TTL des alten Eintrags brauchen, bis sie jeden Resolver erreicht. Führe den Checker danach erneut für die Domain deiner From-Adresse aus, denn er liest genau den eingegebenen Hostnamen.

Ergebnis lesen

So liest du jeden Status.

  1. 01BestandenDer Eintrag wurde gefunden und erfüllt die Prüfung.
  2. 02Niedrig · Mittel · HochEin Eintrag fehlt oder ist so gesetzt, dass diese Prüfung ihn meldet. Die Stufe ist dieselbe wie im vollständigen Snapshot.
  3. 03BeobachtetEin Eintrag wurde erfasst, aber die Prüfung ergab weder ein Bestanden noch einen Befund.
  4. 04Nichts beobachtetDie Prüfung lief, fand aber keinen Eintrag zum Anzeigen.
  5. 05Nicht zutreffendDie Prüfung trifft nicht zu, zum Beispiel SPF oder DMARC, wenn der Host keine MX-Einträge hat.
  6. 06Nicht gemessenDie DNS-Abfrage ist fehlgeschlagen, daher zählt die Prüfung nicht als bestanden.
Umfang

Was dieser Checker nicht tut.

  1. 01Er liest Einträge auf genau dem eingegebenen Hostnamen. Für www.example.com fragt er www.example.com und _dmarc.www.example.com ab, nicht example.com.
  2. 02Der Hostname muss zu einer Adresse auflösen. Eine reine Mail-Domain ohne A- oder AAAA-Eintrag erhält hier kein Ergebnis.
  3. 03Er prüft weder DKIM noch TLS-Reporting oder DNSSEC und löst keine SPF-include:-Terme auf.
  4. 04Mail-Einträge werden nur aus dem öffentlichen DNS gelesen, und es wird keine Mail gesendet. Derselbe Lauf sendet für die anderen sieben Checks auch einige gewöhnliche Anfragen an die Startseite. Er ist kein Zustellbarkeitstest, kein Schwachstellenscan und kein Penetrationstest.
  5. 05Das Ergebnis ist eine Momentaufnahme; DNS-Änderungen können eine Weile brauchen, bis sie jeden Resolver erreichen.
FAQ

Fragen zur SPF- und DMARC-Prüfung.

Warum zeigt www.example.com keinen SPF-Eintrag?

Der Checker liest genau den eingegebenen Hostnamen. Mail-Einträge liegen meist auf der Domain, von der du Mails sendest, also gib example.com selbst ein.

Ist p=none falsch?

p=none ist der Überwachungsmodus. Er ist ein normaler erster Schritt, während du DMARC-Berichte liest, und wird deshalb als niedrig bewertet. Wechsle zu quarantine oder reject, sobald alle legitimen Mails bestehen.

Warum wird DKIM nicht geprüft?

DKIM-Schlüssel werden unter Selector-Namen veröffentlicht, die nur die sendenden Dienste kennen, deshalb lassen sie sich nicht allein aus dem DNS finden. Prüfe sie in den Einstellungen jedes Dienstes, der deine Mails sendet.

Prüft das, ob meine Mails im Posteingang ankommen?

Nein. Mail-Einträge werden nur aus dem öffentlichen DNS gelesen, und es wird keine Mail gesendet; derselbe Lauf sendet für die anderen Checks auch einige gewöhnliche Anfragen an die Startseite. Es ist kein Schwachstellenscan und kein Penetrationstest. Ob Mails im Posteingang landen, hängt außerdem vom sendenden Dienst, seiner Reputation und jeder einzelnen Nachricht ab.

Darf eine Domain zwei SPF-Einträge haben?

Nein. Hat ein Name mehr als einen TXT-Eintrag, der mit v=spf1 beginnt, liefert SPF für jede Nachricht einen permanenten Fehler. Fasse die Mechanismen in einem Eintrag zusammen; ein langer Eintrag lässt sich innerhalb dieses Eintrags in mehrere Zeichenketten in Anführungszeichen aufteilen, die Empfänger ohne Leerzeichen zusammenfügen.

Warum schlägt DMARC fehl, obwohl SPF besteht?

SPF prüft den Envelope-Absender, oft eine Bounce-Domain deines Maildienstes, nicht die Domain in deiner From-Adresse. Dieses Ergebnis zählt für DMARC nur, wenn beide Domains zueinander passen. Richte in jedem Dienst DKIM-Signaturen mit deiner eigenen Domain ein oder einen eigenen Envelope-Absender auf einer deiner Subdomains.

Wie lange sollte ich bei p=none bleiben?

Bis die Sammelberichte zeigen, dass alle legitimen Quellen mit einer passenden Domain bestehen, auch Mails, die nur einmal im Monat rausgehen, etwa Rechnungen. Für Domains, deren Nutzer an Mailinglisten schreiben, rät RFC 9989 von reject ab; wählst du es trotzdem, bleibe vorher mindestens einen Monat bei none und noch einmal so lange bei quarantine.

Nächster Schritt

Mache aus Befunden einen klaren Plan zur Behebung.