DKIM Fail: "Body Hash Did Not Verify" — What Causes It and How to Fix It
The short answer (what's causing it)
The receiver recomputed the hash of the message body and it no longer matched the signature. Something modified the body after signing: a mail gateway disclaimer, a mailing list footer, link rewriting, or line-ending changes.
Step-by-step fix
- Identify which hop modified the message (compare Received: headers).
- Move disclaimers/footers so they're added before DKIM signing, or have the gateway re-sign.
- For mailing lists/forwarders, rely on ARC or aligned SPF where possible.
- Re-test and confirm
dkim=pass.
Record examples (replace example.co.uk with your domain)
Authentication-Results: dkim=fail (body hash did not verify) header.d=example.co.uk
Examples are illustrative templates, not values for your domain. Test changes at
p=none/ staging first.
Check yours free in seconds
Run the free 20-check SuperTool on your domain: no signup, no install, public DNS only. Relevant checks: DKIM, DMARC.
Scan my domain free (20-check SuperTool) → £24 Sovereign DMARC (T0 RUA), SPF, MTA-STS & PHP2Shell Remediation Pack → £5 Website Launch Special Quick-Fix Pack →One-off download via PayPal guest checkout, no subscription. Packs contain DNS/config templates and scripts you run yourself.
Frequently Asked Questions
Is my DKIM key broken?
Usually not — a broken key gives a signature/key error, not a body hash mismatch.
Will DMARC still pass?
Only if aligned SPF passes for that hop.
Related FaultyPacket guides & tools
Authorised use: only scan domains you own or are authorised to inspect. Results are point-in-time public DNS observations.