[ DKIM ]

How to find a DKIM selector from a real message

Read s= and d= from the actual DKIM-Signature, query their combined DNS name and distinguish an available public key from a signature that verified on delivery.

By the EmailAuth research team · 7 min read

[ Key points ]

  • Keep s and d from the same signature together.
  • Query the exact name and inspect any supported alias chain.
  • Match the lookup to trusted verification and alignment evidence.
On this page

The most reliable place to find a DKIM selector is the DKIM-Signature header of the message you are investigating. Read the s= value and pair it with the d= signing domain from that same signature.

The selector identifies where verification material is published. It does not identify the visible sender or prove that the signature passed. This guide follows the evidence from a received message to the correct DNS name, then explains what the lookup can and cannot establish.

Obtain the original received message

Use a controlled message sent through the actual service to a separate recipient. Preserve the original message as received there. A forwarded screenshot or a re-saved, edited message can omit or change evidence.

Locate every DKIM-Signature header. A message can contain more than one. For each signature, record its signing domain and selector separately, then correlate the trusted receiver's verification result.

  • d: signing domain.
  • s: selector.
  • a: signing/hash algorithm.
  • h: selected signed-header list.
  • bh and b: body hash and signature values, not DNS public-key records.

These fields are defined by RFC 6376 §3.5.

Do not substitute the visible From domain for d= when building the key lookup. Alignment is a later comparison between the passing signing identity and the visible From identity.

Construct and query the verification name

Under RFC 6376 §3.6.2.1, the verification name combines the two values from the same signature:

<selector>._domainkey.<signing-domain>

In this synthetic example, the signature identifies:

The synthetic signature has d=example.com and s=mail2026.

The corresponding lookup is:

dig TXT mail2026._domainkey.example.com +noall +answer

If a provider delegates key management through a CNAME, inspect that chain as well:

dig CNAME mail2026._domainkey.example.com +noall +answer

These are illustrative DNS checks, not verification of a captured real message. Use the actual signature values. Under RFC 1034 §3.6.2, for a published alias, follow the intended target and establish that the verification data is available through the chain.

Public DNS contains the verification key material or the delegation leading to it. The private signing key belongs in the authorised signing system, not in a TXT record.

Interpret the lookup alongside verification results

A public-key answer shows that a resolver can retrieve particular verification material at that time. It does not prove that a message contains a signature, that the corresponding private key was used correctly or that signed content remained intact.

If the key exists but the signature fails, investigate the complete verification result. Content changes, malformed or incompatible key data, signature coverage, time-related conditions and DNS observations can require different remedies.

If no key is found, check the exact d= and s=, the authoritative zone, the CNAME target, key-retirement history and resolver errors. Do not publish a guessed selector simply to turn a checker green.

If the original has no relevant DKIM signature, a selector search cannot manufacture signing. Check whether the actual sender is configured to sign, whether the service supports the required identity and whether a later route changed the evidence.

Handle multiple signatures and key rotation

Make a separate row for each signature and its trusted result. A service's own passing signature may be unaligned, while a customer-domain signature passes alignment. Another message may have a failed customer-domain signature and only an unrelated passing one.

For rotation, check which selector the real message used, not merely which two records are available in DNS. Preserve the relationship between configuration state, signing cutover and messages already in transit. An old selector's retirement can affect later verification of saved or delayed messages.

For Microsoft 365, use the tenant-specific setup guide. For Workspace, use the selected-domain setup guide. Neither provider's common selector pattern should replace reading the actual evidence.

Confirm signing on the actual service

If a supplier says your domain has DKIM configured, ask it to show a message sent by the relevant workflow and the domain that actually signed it. A publicly visible key is one configuration dependency, not proof of live signing.

This matters when several tools use the same visible brand. Employee mail, support tickets and receipts may have different selectors, signing domains and owners. A successful check on one cannot stand in for the rest.

Keep track of signing ownership and delegation

Keep a selector inventory tied to service, domain, key-management model and business owner. Distinguish direct control of a key from delegation to a provider. Review the delegation when a service is offboarded.

Restrict private-key access and define the response to a suspected compromise. A valid public record is not proof that key custody is sound. Similarly, a valid signature establishes a domain-level assertion over covered content; it does not approve a payment request or rule out account compromise.

The useful evidence chain is message, signature identity, key lookup, trusted verification and alignment. Keep those observations together so the next reviewer can reproduce the diagnosis.

The practical takeaway

Keep the original message, signature identities, DNS observation and trusted receiver result together. That evidence distinguishes a missing key from an unsigned message, a failed signature or a signature that passes but does not align.

Apply the distinction

With two hypothetical signatures, d=example.com/s=mail2026 and d=service.example.net/s=outbound, query mail2026._domainkey.example.com and outbound._domainkey.service.example.net separately. Never combine mail2026 with the second d. Keep each lookup time and trusted result alongside its pair. A later missing key does not erase an earlier trusted receiver observation.

[ Takeaway ]

Keep s and d from the same signature together. Query the exact name and inspect any supported alias chain. Match the lookup to trusted verification and alignment evidence.

[ By role ]

What this means for you

Choose your role for practical next steps.

IT / Mail Admin

Keep each signature's d= and s= together.

Read the original received message, construct the exact verification name and inspect the relevant TXT or CNAME chain. Correlate the lookup with the delivery-time result.

Next steps

  1. Do not substitute From for the signing domain.
  2. Inspect every relevant signature separately.
  3. Check rotation and retirement timing when later results differ.

CISO / SecOps

Maintain custody and delegation accountability.

A valid public record does not establish that private-key access is controlled. Keep the selector inventory tied to the signing service, management model and owner.

Next steps

  1. Review delegated selectors during service offboarding.
  2. Restrict private-key access and define compromise response.
  3. Preserve verification evidence without treating signatures as business approval.

Founder / Non-technical

Ask for evidence from the actual sending workflow.

A public DKIM key is one dependency. The useful demonstration is a message from the service you rely on, with its signing identity and a trusted verification result.

Next steps

  1. Name the workflow being checked.
  2. Ask whether the passing signature aligns with your visible domain.
  3. Keep supplier ownership and offboarding responsibilities clear.

[ FAQs ]

Frequently asked questions

Where is the DKIM selector in a message?

It is the s= value inside the relevant DKIM-Signature header. Read it from the actual original message, rather than assuming a provider default.

RFC 6376 §3.5

Which domain belongs in the selector lookup?

Use the d= domain from the same signature. Construct selector._domainkey.signing-domain; do not automatically use the visible From domain.

RFC 6376 §3.6.2.1

Can a DKIM selector contain something other than google or selector1?

Yes. Selectors are configured by the signing service and can vary or change with rotation. Use the exact value present in the signature or current supported configuration.

RFC 6376 §3.1

What evidence shows that a service is actually signing with DKIM?

Use an original message sent through the relevant workflow, its signing domain and a trusted verification result. A publicly visible key establishes only one dependency and does not prove that the service is signing.

RFC 6376 §5.5 RFC 6376 §6.1

Why does the lookup show a CNAME?

The signing domain may delegate key management to a provider. Follow and verify the chain and use the provider's supported configuration rather than replacing it with guessed key data.

RFC 1034 §3.6.2

What should I do with several DKIM-Signature headers?

Record each d= and s= pair and its trusted verification result. Then identify whether any passing signature aligns with the visible From domain.

RFC 6376 §4.2 RFC 9989 §4.4.1

What if there is no DKIM-Signature header?

Check the original message and actual sending route. DNS publication alone does not enable signing, and a missing signature is different from a signature that failed verification.

RFC 6376 §5.5

Can a later selector lookup disagree with the delivery result?

Yes. DNS keys, timing or the saved message can change. Preserve the original trusted receiver result and distinguish it from a later verification attempt.

RFC 6376 §3.1 RFC 6376 §6.1.2

[ Sources ]

Sources

  1. RFC 6376

    Sections §1 · §3.1 · §3.5 · §3.6.2.1 · §3.7 · §4.2 · §5.5 · §6.1 · §6.1.2 · §8.3

  2. RFC 1034

    Sections §3.6.2

  3. RFC 8601

    Sections §1.2 · §7.1

  4. RFC 9989

    Sections §4.4 · §4.4.1

[ Glossary ]

Glossary

DKIM
A domain-associated signature over selected message content verified using public-key data.

RFC 6376 §1

Selector
The s value used with the d signing domain to locate verification data.

RFC 6376 §3.1 RFC 6376 §3.5

DMARC alignment
The required relationship between an authenticated identifier and the Author Domain.

RFC 9989 §4.4

Enterprise provenance

Why top financial institutions and governments retired their email security dashboards.

Traditional email authentication platforms sell you a dashboard and ask your engineers to do the labour. In high-stakes environments, manual oversight means delayed enforcement, configuration drift and unmonitored shadow domains.

EmailAuth is the agentic email provenance platform. Our agents enforce p=reject, keep third-party senders aligned and move your domains to full RFC 9989 compliance, the new DMARC standard,, with human-in-the-loop auditability.

Governments Large enterprises Tier-1 financial institutions

SaaS · Dedicated tenancy · Air-gapped on-prem · BYOK encryption

Knowledge Base