So sieht die Meldung aus
Authentication-Results: mx.google.com;
dkim=fail (body hash did not verify) header.i=@example.com header.s=default header.b=abc123;
spf=pass smtp.mailfrom=example.comHäufige Ursachen
- Ein Mail-Gateway oder Virenscanner fügt einen Footer oder ein Banner hinzu, nachdem dein Server signiert hat.
- Eine Mailingliste oder ein Weiterleiter ändert Betreff oder Text oder fügt einen Abmelde-Footer an.
- Link-Tracking oder URL-Umschreibung verändert den Text.
- Strenge Kanonisierung (
simple) bricht schon bei kleinen Änderungen wie Leerzeichen oder Zeilenenden. - Die Nachricht wird vor einem anderen Filter signiert oder zweimal mit verschiedenen Schlüsseln.
Prüfen
- Signatur und Ergebnis in den Headern einer empfangenen Testmail ansehen
grep -iE '^(dkim-signature|authentication-results)' message.eml - Ist der DNS-Schlüssel veröffentlicht und gültig?
- Den Schlüssel auf dem signierenden Server testen
opendkim-testkey -d example.com -s default -vvv - Welche Kanonisierung ist eingestellt?
grep -i Canonicalization /etc/opendkim.conf
Lösung
- Das Signieren zum allerletzten Schritt machen, nach Virenscanner, Disclaimer und Filter, direkt vor dem Versand.
- Relaxed-Kanonisierung nutzen:
Canonicalization relaxed/relaxed. - Footer und Banner, die nach dem Signieren angefügt werden, entfernen oder vorher hinzufügen.
- Link-Umschreibung für die eigene ausgehende Post abschalten oder danach signieren.
- Bei Mailinglisten auf SPF-Alignment und eine DMARC-Richtlinie
p=noneoderquarantinesetzen; Listen verändern Nachrichten bauartbedingt.
Häufige Fragen
Was ist der Unterschied zu „signature did not verify“?
„Body hash did not verify“ heißt, der Text wurde verändert. „Signature did not verify“ heißt meist, der DNS-Schlüssel passt nicht zum privaten Schlüssel oder die signierten Header wurden geändert.
Heißt ein DKIM-Fehler immer Spam?
Nein. Besteht SPF und ist ausgerichtet, kann DMARC trotzdem bestehen. Ein kaputtes DKIM schwächt aber die Zustellung, also beheben.