DKIM Record Lookup
Look up the selector._domainkey TXT record for a DKIM public key.
DKIM Record Lookup fetches the TXT record at selector._domainkey.<domain> to show a domain's DKIM public key and settings. DKIM cryptographically signs outgoing mail so receivers can verify it wasn't forged — together with SPF and DMARC it drives deliverability and trust.
DKIM records exist per selector. The selector varies by provider (e.g. Google Workspace uses google) and can be found in the s= value of the DKIM-Signature header of a received email.
If you don't know the selector
DKIM can't be found by domain alone — you need the selector. Check the s= value in the DKIM-Signature header of an email you received. Common values: google, default, selector1/selector2 (Microsoft), k1 (Mailchimp). To analyze a whole received header at once, use Email Header Analyzer.
Key size
We estimate the RSA key size from the public key (p). 1024-bit is weak; use 2048-bit or larger. An empty p= means the key has been revoked.
Reading DKIM record tags
A DKIM TXT value is a list of tag=value pairs separated by ;. Most people only look at p=, but the other tags can change how a receiver treats the signature.
| Tag | Meaning | Example / default |
|---|---|---|
v | Version. If present it must be the first tag | v=DKIM1 |
k | Key type. Defaults to rsa if omitted | k=rsa / k=ed25519 |
p | Base64 public key. Empty means revoked | p=MIGfMA0G… |
t | Flags. y=testing mode (receivers ignore failures), s=no subdomains | t=y |
h | Allowed hash algorithms | h=sha256 |
s | Service type. *=all, email=email only | s=email |
Selectors by provider
| Provider | Name to query |
|---|---|
| Google Workspace | google._domainkey |
| Microsoft 365 | selector1._domainkey, selector2._domainkey (CNAME) |
| Amazon SES | <token>._domainkey (3 CNAMEs) |
| SendGrid | s1._domainkey, s2._domainkey |
| Mailchimp / Mandrill | k1._domainkey, k2._domainkey |
| Zoho Mail | zoho._domainkey or zmail._domainkey |
Worked example
Entering selector google and domain example.com queries the TXT record at google._domainkey.example.com. If the result is v=DKIM1; k=rsa; p=MIIBIjANBg…AQAB, then v=DKIM1 marks it a valid DKIM record, k=rsa is an RSA key, and a p= Base64 string of roughly 392 characters indicates a 2048-bit key. If you see t=y the record is still in testing mode — receivers ignore signature failures, so remove this flag once you've finished validating to make DKIM actually count.
Common pitfall
- Doubling up
_domainkey— this tool takes the selector and domain separately and buildsselector._domainkey.<domain>for you. Pasting the fullgoogle._domainkeyinto the selector field queries the wrong name. - Thinking a Microsoft 365 record is "empty" — selector1/2 are usually CNAMEs pointing at
onmicrosoft.com, not raw TXT. A short value with no visible key is normal; you must follow the CNAME to reach the real key. - Leaving 1024-bit keys in place — keys generated years ago are often 1024-bit. Add a fresh 2048-bit selector via key rotation, then revoke the old one (empty its
p=).
Frequently asked questions
Can't I just enter the domain?
Can there be multiple selectors?
The p= value is empty.
Does DKIM alone stop spoofing?
Related guides
- Safely Moving DMARC from p=none to quarantine to rejectA safe, staged process to strengthen DMARC from monitoring (none) to quarantine and reject.
- Why Email Lands in Spam: SPF, DKIM and DMARC TogetherCommon reasons sent mail goes to spam, and how to align SPF, DKIM and DMARC together.
- How to Read Email Headers: Trace Senders and Spot PhishingOpen the raw headers, trace the real sending server, and use SPF/DKIM/DMARC results to spot forged mail.
- Setting Up DKIM: Key Generation, DNS Records and VerificationHow DKIM signing works, what selectors are, and the full flow: generate keys, publish DNS, verify.