Why DKIM fails and how to fix it

Short answer

DKIM fails when the receiver cannot verify the message signature against the public key in your DNS. The usual causes are a missing or wrong selector, a revoked (empty) public key, the message body being modified in transit (e.g. by a mailing list), or the signing domain not aligning with your From domain. Each has a specific fix below.

Find the selector first

DKIM keys live at {selector}._domainkey.yourdomain.com. The selector is chosen by your sending platform (e.g. google for Google Workspace, selector1/selector2 for Microsoft 365, s1/s2 for many ESPs). If you check the wrong selector, you’ll see a false failure.

The four common causes

No record / wrong selector: publish the exact TXT record your provider gives you at the exact selector. Revoked key (p= empty): the key was rotated or disabled — re-enable DKIM in your provider and republish. Body modified: a forwarder or list footer changed the message after signing; use relaxed canonicalization and rely on DMARC+DKIM alignment. Not aligned: the signing domain must match (or be a subdomain of) your From domain for DMARC to pass.

  1. 1

    Look up the selector key

    Replace google with your selector:

    $ dig TXT google._domainkey.yourdomain.com +short

Check your DKIM record now

Open the free DKIM checker →

Frequently asked questions

How do I find my DKIM selector?

Check a received email’s headers for d= and s= in the DKIM-Signature line, or your sending platform’s DKIM setup page. The s= value is the selector.

What does an empty p= mean?

The public key has been revoked. The selector record exists but carries no key, so every signature fails. Re-generate/enable the key in your provider.

DKIM is defined in IETF RFC 6376.

Reviewed by the Skysnag Security Team. Last updated .