Parse an existing DKIM record to see tags, key strength, and revocation status; build a record manually for self-hosted mail servers; or generate a new 2048/4096-bit RSA key pair entirely in your browser. Includes selector reference for popular providers, tag reference, and common DKIM mistakes.
Paste the TXT value from <selector>._domainkey.<domain>.
Paste a DKIM record to see its tags and any issues.
| Tag | Value | What it does |
|---|
Manually assemble a DKIM TXT record. Useful for self-hosted mail servers (postfix + opendkim, exim).
default, mail, s1, 2024.<selector>._domainkey.<domain>).-----BEGIN/END PUBLIC KEY----- and any newlines — the parser handles common formats.
Publish at default._domainkey.yourdomain.com.
v=DKIM1; k=rsa; p=
default._domainkey.yourdomain.com. IN TXT "v=DKIM1; k=rsa; p="
TXT record at the host shown above.dig +short TXT <selector>._domainkey.<domain>.check-auth@verifier.port25.com or use mail-tester.com to confirm DKIM passes end-to-end.
RSA key pair generated locally via window.crypto.subtle.
Copy each value to its destination. Refresh the page to discard from memory.
/etc/opendkim/keys/<domain>/<selector>.private). Set permissions to chmod 600.<selector>._domainkey.<domain>.Where to look up DKIM records for popular email providers.
| Provider | Default selector(s) | Lookup hostname |
|---|---|---|
| Google Workspace / Gmail | google | google._domainkey.<domain> |
| Microsoft 365 / Exchange Online | selector1, selector2 | selector1._domainkey.<domain> |
| SendGrid | s1, s2 | s1._domainkey.<domain> |
| Mailchimp | k1, k2, k3 | k1._domainkey.<domain> |
| Mailgun | mg or custom (e.g. k1) | mg._domainkey.<domain> |
| Amazon SES | 3 random tokens (rotated) | SES gives you 3 CNAMEs to publish |
| Postmark | 20yymm (year/month) | 20240101._domainkey.<domain> |
| Zoho Mail | zoho or zmail | zoho._domainkey.<domain> |
| HubSpot | hs1-<id>, hs2-<id> | Provided in HubSpot settings |
| Brevo (Sendinblue) | mail | mail._domainkey.<domain> |
| Self-hosted (opendkim, exim) | default, mail, YYYY | You choose |
All tags defined by RFC 6376.
| Tag | Default | Meaning |
|---|---|---|
v | DKIM1 | Version. Must be exactly DKIM1 if present. |
k | rsa | Key type. rsa or ed25519. |
p | — | Public key (Base64). Empty p= means revoked. |
s | * | Service type. email restricts to email use. |
t | — | Flags. y=testing, s=strict subdomain match. |
n | — | Notes (free text, ignored by receivers). |
h | all | Acceptable hash algorithms (rarely set). |
g | * | Granularity. Deprecated in RFC 6376. |
Top issues seen in real-world deployments.
t=y
Testing flag tells receivers to ignore DKIM failures. If you forget to remove it after rollout, you have DKIM in name only — no actual protection.
<selector>._domainkey.<domain>, not <selector>.<domain> or _domainkey.<domain>. The _domainkey part is mandatory.
p=
DKIM p= takes only the Base64 body, not the -----BEGIN PUBLIC KEY----- markers. Strip them and any line breaks before publishing.
p= by accident
An empty p= tag means "this key is revoked, reject any signature using this selector". Easy to publish accidentally if your provider gives you malformed input.