Look up a DKIM selector, validate the DKIM DNS TXT record, inspect the public key and check key type, strength and revocation status.
Enter a selector and domain above to look up a DKIM selector, inspect the DNS TXT tags and verify the public key strength.
DKIM (DomainKeys Identified Mail) lets a sending server sign outgoing mail with a private key. This DKIM record checker looks up the matching public key is published in DNS as a TXT record at <selector>._domainkey.<domain> , so receivers can verify the signature and confirm the message wasn't altered in transit.
The selector is the part you have to know — a domain can publish many keys (one per provider, or rotated over time), each under its own selector. There's no way to list them from DNS, so you supply the selector printed in a message's DKIM-Signature: header (the s= tag) or in your mail provider setup screen.
The record itself is a set of tag=value pairs: v=DKIM1 (version), k (key type — rsa or ed25519), and p (the Base64 public key). An empty p= means the key was revoked. Prefer 2048-bit RSA or Ed25519 — 1024-bit keys still validate but are considered weak.
This tool validates the DKIM DNS record and public key. It does not verify a specific email message signature; that requires the original message headers and body.
Each record below is published at
s1._domainkey.example.com
and checked by entering selector
s1
and domain
example.com. Keys are shortened here.
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA…
Result: RSA · 2048-bit, hash SHA-256, four of five strength segments, and all seven checks pass. Keys starting with
MIIBIjAN
are typically 2048-bit; 1024-bit keys usually start with
MIGfMA0.
v=DKIM1; k=rsa; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC…
Result: RSA · 1024-bit with two of five strength segments, 5 passed and 2 to review — the key length and the
t=y
testing flag. The key still verifies, but it is due for replacement.
v=DKIM1; k=ed25519; p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo=
Result: Ed25519 · 256-bit, four of five strength segments, and all seven checks pass. This sample key from RFC 8463 shows the format: the 32-byte public key itself, Base64-encoded to 44 characters. A DER-wrapped key starting with
MCowBQYDK2Vw
is the wrong format. Ed25519 is usually published next to an RSA selector, because not every receiver verifies Ed25519 signatures yet.
v=DKIM1; p=
Result: a Revoked badge, an empty strength meter, and failed checks for the public key and key length (0-bit) — expected for a selector you retired on purpose, a problem only if a server still signs with it.
If a service asks you to point
s1._domainkey.example.com
at
s1.domainkey.example.net
with a CNAME, the resolver follows it and the checker shows the TXT record at the target.
k=; RSA is shown when the tag is missing, because RSA is the default.
p=. Ed25519 keys have a fixed size: a
p=
value that decodes to exactly 32 bytes is shown as 256-bit, anything else as 0-bit.
h=. When
h=
is absent the tool shows SHA-256, although an absent tag actually allows any algorithm.
SHA256:
fingerprint derived from the key, handy for spotting whether a key changed after a rotation.
v=DKIM1
tag, key present and not revoked, a supported key type (rsa or ed25519), key length,
t=y
testing mode, and whether
p=
decodes to a well-formed key — a DER-encoded RSA public key for
k=rsa, or exactly 32 raw bytes for
k=ed25519.
Selectors exist so a domain can publish several keys at once — one per sending service, or an old and a new key during a rotation. A safe rotation runs in this order:
s2
next to the current
s1.
s2 here: it should be found, 2048-bit RSA or Ed25519, and without t=y.s2, send a test message and confirm that the
s=
tag in its
DKIM-Signature
header now reads
s2.
s1
published for a while, because messages signed with it may still be queued or re-verified later.
s1
by publishing an empty
p=
or deleting the record. Checking
s1
should then show the Revoked badge or no record.
The same steps upgrade a 1024-bit key to 2048-bit. A 2048-bit key exceeds the 255-character limit of one TXT string, so it is published as several quoted strings in one record; the checker joins them before parsing.
s=
and
d=
from the
DKIM-Signature
header of a message that was actually sent.
s1._domainkey.example.com.example.com. Enter only
s1._domainkey
in those panels.
_domainkey
(the underscore is required), or a CNAME target the provider has not activated yet.
The
p=
value could not be decoded as a public key. Typical causes are a key truncated while pasting, quote characters from a split string ending up inside the value, or a PEM header such as
-----BEGIN PUBLIC KEY-----
published with the key. Publish only the Base64 body. For
k=ed25519, publish the raw 32-byte key (44 Base64 characters); a DER-wrapped key starting with
MCowBQYDK2Vw
is the wrong format and fails the check.
1024-bit RSA still verifies but is flagged; rotate to 2048-bit with a new selector.
t=y
tells verifiers the domain is only testing DKIM, so signed mail gets no different treatment from unsigned mail — remove it once signatures verify.
A valid key only proves the signature can be verified. For DMARC, the
d=
domain must also align with the visible From: domain — a service signing as its own domain does not count. Review the policy and alignment mode with the
DMARC policy checker.
_domainkey, so you need the selector from a message header or your provider.
v=DKIM1
and otherwise using the first record with a
p=
tag.
s=,
n=
and
g=
tags are listed but not evaluated, and
h=sha1
is not flagged.
selector._domainkey.domain
name in the selector box is trimmed to the selector.
A DKIM record checker looks up the public key published at selector._domainkey.domain. It validates the DKIM DNS TXT record, parses tags such as v, k, and p, and checks whether the public key is present and usable.
A selector identifies which DKIM key a mail system used to sign a message. You can find it in the s= tag of a DKIM-Signature header or in your mail provider setup instructions.
The selector may be wrong, the record may not have propagated, or the TXT value may be published at the wrong hostname. The expected hostname is selector._domainkey.example.com.
No. This tool checks the DKIM DNS record and public key. It does not verify a full email message signature because that requires the message headers and body.