DKIM selector

Also known as: DKIM selectors, selector

A DKIM selector is the label that identifies which DKIM public key a receiver should use to verify a message. It lets one domain publish several keys — for different providers or for rotation — without them colliding.

The selector appears in two places. In DNS, the key lives at:

<selector>._domainkey.yourdomain.com

and in every signed message’s DKIM-Signature header as the s= tag:

DKIM-Signature: v=1; a=rsa-sha256; d=yourdomain.com; s=google; ...

Here the selector is google, so the receiver fetches the key from google._domainkey.yourdomain.com.

Why selectors exist

Without them a domain could publish only one DKIM key, and every service sending on its behalf would have to share the private half — which no provider will do. The selector turns a single domain into a namespace: your mailbox provider, your marketing platform and your helpdesk each publish a key under their own label, and each names its own label in s= when it signs.

The same mechanism makes rotation possible without downtime. A new key goes up under a new selector, signing switches to it, and the old one stays published until the last message signed with it has been delivered.

The two halves of a signature

A selector only says which key to fetch. It says nothing about whose domain took responsibility — that is the d= tag beside it. Both matter, and for different reasons: s= has to resolve for the signature to verify at all, and d= has to align with the From: domain for a verified signature to satisfy DMARC. A dkim=pass under your provider’s d= rather than your own is the classic near-miss.

Not enumerable

A selector is an ordinary DNS label with no reserved format — google, s1, selector2 and 20240115 are all valid — and _domainkey is not a listable zone. You can only look up a selector you already know, which is why tools that check whether DKIM is configured have to guess from a list of common names.

See: how to find your DKIM selector for the practical steps, the selectors each provider uses, and what to do when one does not resolve.