Skip to content
D1
EN
Guides

DKIM p= public key checks

DKIM p tag · DKIM public key · DKIM TXT p=

How to read the DKIM p= public key tag, why empty p= revokes a key, and what truncated DNS TXT records look like.

By DN01 Network Team

The p= tag carries the public key that receivers use to verify signatures, so a missing, empty, malformed or truncated value breaks authentication. DKIM proves that a message was signed by the sender and that the public key needed for verification is published in DNS.

DNS editors sometimes split, quote or truncate long TXT values incorrectly, producing a record that looks present but cannot be parsed by receivers. Always test the exact selector._domainkey.domain name. The domain alone is not enough because each selector can publish a different public key.

Use /en/dkim-validator to confirm that p= is present and decodable, then inspect the raw TXT record in /en/dns-checker if the provider UI differs from public DNS. Review the TXT answer, DKIM tags, key length, testing mode and revoked state before changing mail provider settings.

What to verify first

Confirm that the selector is copied from the mail provider, not guessed from another domain or an old migration note.

Check whether the answer is a direct TXT record or a CNAME chain that eventually points at the DKIM TXT value.

Look at v=DKIM1, k=, p=, h=, s= and t= together. A record can exist but still be unusable when the public key is empty, malformed or too weak.

Common failure causes

The record was added to the wrong DNS provider, while the domain still delegates to another authoritative nameserver.

The selector changed during a provider migration, key rotation or domain re-verification, but an older selector is still being tested.

The TXT value was split or quoted incorrectly by a DNS editor, so receivers cannot reconstruct the base64 public key.

How to fix safely

Publish the new key first, wait for DNS visibility, then switch signing in the provider console. Do not delete the old selector until delayed mail has cleared.

Use t=y only during rollout. Once signed mail verifies consistently, remove testing mode so DKIM sends a stronger production signal.

Keep DKIM checks next to SPF and DMARC checks. A valid DKIM key is one part of deliverability, not the whole authentication policy.

Key DKIM tags
TagWhy it matters
v=DKIM1Identifies the TXT value as a DKIM record.
p=Carries the public key; an empty value revokes the key.
k=Declares the key type, commonly rsa or ed25519.
h=Limits allowed hash algorithms such as sha256.
t=Flags testing mode (y) or strict subdomain behavior (s).

Frequently asked questions

Can I check DKIM without a selector?

No. DKIM records are selector-specific, so you need the selector from your provider or from a DKIM-Signature header.

Why is the DKIM record found but invalid?

The TXT record may have a wrong version tag, duplicate tags, missing p=, invalid base64, a revoked empty key or a weak/malformed public key.

Should I keep the old selector during rotation?

Yes, keep it until TTLs and delayed mail queues clear. Removing it too early can break verification for messages already in transit.