Fehlermeldung
dkim=fail reason="key not found in DNS"
Auch ausgegeben als
- dkim=neutral (no key)
Die Einstufung hängt vom Prüfer ab (`fail` in OpenDKIM, `neutral (no key)` in mailauth – beides reproduziert); deshalb kann dieselbe Nachricht in den Headern deines eigenen Servers anders aussehen als bei großen Postfachanbietern. In den Headern von Gmail steht meist `dkim=neutral (no key for signature)` – eine Formulierung des Live-Dienstes, die sich in einem Container nicht reproduzieren lässt. Ein DNS-Timeout statt eines fehlenden Eintrags ergibt `dkim=temperror`.
Was der Fehler bedeutet
Die Nachricht trägt eine DKIM-Signatur für den Selektor `s=` und die Domain `d=`, aber der TXT-Eintrag `<selector>._domainkey.<domain>` existiert nicht, deshalb kann der Empfänger nichts prüfen. OpenDKIM meldet das als `dkim=fail` mit diesem Grund; andere Prüfer stufen dieselbe Situation anders ein – mailauth als `dkim=neutral (no key)`, manche als `dkim=permerror`. Für DMARC zählt keines davon als bestandene DKIM-Prüfung.
Warum der Fehler auftritt
Der Eintrag des Selektors wurde nie angelegt
häufigEin neuer Signaturschlüssel (oder ein neuer E-Mail-Anbieter) hat begonnen, mit einem Selektor zu signieren, bevor dessen TXT-Eintrag angelegt war. ESPs wie Google Workspace, Microsoft 365 oder SendGrid signieren erst dann korrekt, wenn ihre Einträge existieren.
Der Eintrag existiert unter einem leicht abweichenden Namen
häufigDNS-Verwaltungsoberflächen, die den Zonennamen anhängen, erzeugen `s2026._domainkey.example.com.example.com`; ein Eintrag, der in der übergeordneten Zone angelegt wurde, während eine Subdomain an anderer Stelle delegiert ist, wird ebenfalls nicht gefunden.
CNAME-Ziel oder aufgeteilter Eintrag defekt
gelegentlichAnbieter, die per CNAME auf ihre eigenen Schlüsseleinträge verweisen (`s1._domainkey → s1.domainkey.u123.wl.sendgrid.net`), scheitern, wenn der CNAME fehlt oder auf ein entferntes Ziel zeigt.
Der Schlüssel wurde entfernt, obwohl E-Mails ihn noch verwenden
gelegentlichEntfernst du den alten Selektor direkt nach der Rotation, scheitern Nachrichten, die noch in Warteschlangen liegen oder später erneut geprüft werden (Weiterleitung, ARC).
So behebst du den Fehler
- 1.
Exakten Namen des Eintrags abfragen
Setze den Namen aus `s=` und `d=` des Signatur-Headers zusammen und frage ihn von außerhalb deines Netzwerks ab.
bash # s= and d= from the DKIM-Signature header name the record: <s>._domainkey.<d> dig +short TXT s2026._domainkey.example.com dig +short TXT s2026._domainkey.example.com @1.1.1.1 # bypass local caches - 2.
Schlüssel veröffentlichen und alte Selektoren eine Weile behalten
Veröffentliche den neuen Selektor, bevor du damit signierst, und behalte den bisherigen nach dem Wechsel noch einige Tage.
text ; zone example.com - long keys are split into several quoted strings of at most 255 characters s2026._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..." )
Verwandte Fehler
dkim=fail reason="signature verification failed"OpenDKIM (Authentication-Results header added by the opendkim milter); mailauth reports the same as "bad signature"dkim=permerrorOpenDKIM (Authentication-Results); mailauth reports syntax errors as dkim=neutraldkim=fail (body hash did not verify)DKIM verifiers (Gmail, mailauth, Rspamd…)