Check a DKIM record

Enter a domain and, optionally, a selector. The DKIM checker reads the TXT record at selector._domainkey.domain, validates syntax and key length and detects revoked or weak keys. Without a selector it tries the selectors used by the major providers.

What is DKIM?

DKIM (DomainKeys Identified Mail) cryptographically signs outgoing email. The sending server adds a DKIM-Signature header computed with a private key over selected headers and the body. The matching public key is published as a TXT record in the DNS of the sender domain. Receivers fetch it, verify the signature and thereby know that the message was not altered in transit and really came from a server that holds the domain's key.

Unlike SPF, DKIM survives forwarding, because the signature travels with the message rather than depending on the sending IP. That makes DKIM the more robust of the two authentication methods and the reason DMARC still passes for forwarded mail. Google, Yahoo and Microsoft have explicitly required DKIM from bulk senders since 2024.

Selectors: why the checker needs one

A DKIM record does not live directly under the domain but under a selector: selector._domainkey.example.com. The selector appears in the header of every signed message (s=) and allows several keys per domain, for example one for Google Workspace and one for the newsletter tool. Without the selector nobody can find the record, because DNS offers no way to list all names under _domainkey.

If you do not know the selector, open a message from the domain and look for the s= tag in the DKIM-Signature header. Alternatively leave the field empty: the checker then tries the selectors of common providers such as google, selector1 and selector2 (Microsoft 365), k1 (Mailchimp), brevo, mailgun, pm (Postmark), zoho, ionos and strato. That finds most setups, but not all. A custom selector like mail2024 is only found when you enter it.

How to read the result

For every selector found, the checker shows the record, the key type, the key length and a status:

  • valid: record present, syntax correct, RSA with at least 2048 bits or Ed25519.
  • short: RSA with 1024 bits. Still works, but considered transitional. Move to 2048 bits at the next rotation.
  • too short: RSA below 1024 bits. Many receivers ignore such signatures and treat the message as unsigned.
  • revoked: the p= tag is empty. The key was deliberately withdrawn; mail signed with this selector fails.
  • test mode: the t=y tag is set. Receivers are asked not to penalise failures. Remove it for production.
  • invalid: the record has no p= tag or the key is not valid Base64.

Anatomy of a DKIM record

The record is a TXT record made of tags separated by semicolons. Only p= with the Base64 public key is mandatory. v=DKIM1 and k=rsa are the defaults and may be omitted, but they belong in for readability. A typical record for the selector google:

google._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0g5x...IDAQAB"

Common mistakes

These are the DKIM problems we see most often:

  • Record not found: wrong selector, typo in _domainkey, or the record was left behind during a hosting migration.
  • Key split badly across strings: long keys must be split into DNS strings of at most 255 characters. Some DNS panels do not do this automatically and p= ends up truncated.
  • CNAME to the provider points nowhere: Microsoft 365 and many newsletter services use CNAME delegation. If the provider removes the key, the record is gone even though your own DNS looks unchanged.
  • Old key after rotation: the provider introduced a new selector, DNS still has the old one. Mail is no longer signed, or signed with a key that no longer exists.
  • 1024 bits for years: setups from 2015 often still use short keys. Plan a rotation to 2048 bits.

Monitor DKIM continuously

DKIM records disappear quietly: a provider rotates its key, a zone is recreated, a CNAME points to nothing. Mail keeps going out, lands in spam more and more often, and nobody notices until a client asks. DomainWarn checks the configured selectors of all client domains regularly and reports when a record is missing, revoked or when the key changes.

Frequently asked questions

How do I find my domain's DKIM selector?
The DKIM-Signature header of a sent message contains s=selector. In Gmail use "Show original", in Outlook the message options. Or leave the field empty: the checker tries common selectors automatically.
Are 1024 bits enough for DKIM?
They still work, but RFC 8301 recommends at least 2048 bits and some receivers downgrade shorter keys. Switch to 2048 bits at the next key rotation.
Can a domain have several DKIM records?
Yes, as many as you like, each under its own selector. That is the normal case when several services send on behalf of the domain. Each service signs with its own selector.

Add the DKIM record at IONOS, STRATO, Hetzner, Cloudflare and others

The path to the DNS editor differs by host. For the common providers this shows where you create the DKIM record and what to watch out for.

DKIM record at IONOS

  1. Sign in to the IONOS account and open "Domains & SSL".
  2. Click the gear icon next to the domain and choose "DNS".
  3. Choose "Add record", pick the type (TXT, MX, CNAME) and host name, paste the value, save.
  4. Changes usually apply within minutes; the default TTL is one hour.

Use "@" as the host name for the apex domain; IONOS shows it as the domain name.

DKIM record at STRATO

  1. In the STRATO customer login open "Domains" and then "Domain administration".
  2. Choose "manage" next to the domain and switch to the "DNS settings" tab.
  3. STRATO separates by type: "TXT and CNAME records" for SPF, DKIM, DMARC and verifications, "MX records" for mail delivery.
  4. Enter the value and save; propagation can take up to an hour.

For subdomain records such as _dmarc or selector._domainkey put the prefix into the "Subdomain" field, not into the value.

DKIM record at Hetzner

  1. Open the Hetzner DNS Console (dns.hetzner.com) and select the zone of the domain.
  2. Choose "Add record", enter type, name and value, lower the TTL if needed.
  3. Save; the Hetzner name servers serve the record immediately.

DKIM record at ALL-INKL

  1. Sign in to KAS (the customer administration system) and open "Domain".
  2. Click "edit" next to the domain and then "DNS settings".
  3. "Create new DNS record", enter name (empty for the apex), type and value, save.
  4. ALL-INKL applies changes within minutes.

DKIM record at Cloudflare

  1. In the Cloudflare dashboard open the domain and choose "DNS" → "Records".
  2. Choose "Add record" and enter type, name and content.
  3. For MX, TXT and mail-related CNAME records keep the proxy status on "DNS only"; the orange cloud belongs to web records only.
  4. Save; Cloudflare propagates instantly.

DKIM record at netcup

  1. In the netcup Customer Control Panel (CCP) open "Domains" and select the domain.
  2. Switch to the "DNS" tab and choose "Add new record".
  3. Enter host (@ for the apex), type and destination, then "Save DNS records".

DKIM record at united-domains

  1. In the united-domains portfolio click the domain and open "DNS settings".
  2. Under "Custom DNS records" choose the type, enter subdomain and value.
  3. Save; propagation takes a few minutes.

DKIM record at checkdomain

  1. In the checkdomain customer area open "Domains" and select the domain.
  2. Open "DNS settings" and create a new record with type, name and value.
  3. Save.

DKIM record at domainfactory

  1. In the domainfactory customer menu open "Domains" and select the domain.
  2. Open "Name server settings" and create a new record.
  3. Enter type, host name and value, save.

DKIM record at Alfahosting

  1. In the Alfahosting customer center open the domain and choose "DNS management".
  2. Create a new record with type, name and value, save.

DKIM record at webgo

  1. In the webgo customer portal open "Domains" and choose "DNS management" next to the domain.
  2. Create a record with type, name and value, save.

DKIM record at 1blu

  1. In the 1blu customer service area open "Domains" and choose "DNS settings" next to the domain.
  2. Create a record with type, name and value, save.

DKIM record at Host Europe

  1. In KIS (the customer information system) open "Domain services" and then "Domain administration".
  2. Choose "Name server / DNS" next to the domain and create the record with type, name and value.
  3. Save.

DKIM record at Mittwald

  1. In mStudio open the project and select the domain under "Domains".
  2. Open "DNS", edit or create the record, save.

DKIM record at GoDaddy

  1. At GoDaddy open "My Products" and choose "DNS" next to the domain.
  2. Choose "Add", enter type, name and value, save.

DKIM record at Hostinger

  1. In hPanel open "Domains" and choose "DNS / Nameservers" next to the domain.
  2. In the DNS zone editor create the record with type, name and value.

DKIM record at Amazon Route 53

  1. In the AWS console open Route 53, "Hosted zones" and select the zone.
  2. Choose "Create record", enter name, type and value, set the TTL, "Create records".

DKIM record at Google Cloud DNS

  1. In the Google Cloud console open "Cloud DNS" and select the zone.
  2. "Add record set", enter name, type and value, create.

DKIM record at Azure DNS

  1. In the Azure portal open "DNS zones" and select the zone.
  2. Add a "Record set", enter name, type and value, OK.

DKIM record at OVHcloud

  1. In the OVHcloud control panel open "Web Cloud" → "Domain names" and the domain.
  2. Tab "DNS zone", "Add an entry", choose the type, enter subdomain and value, confirm.

DKIM record at DigitalOcean

  1. In the DigitalOcean dashboard open "Networking" → "Domains" and select the domain.
  2. Choose the type, enter host name and value, "Create Record".

DKIM record at Squarespace

  1. At Squarespace open "Domains", select the domain and open "DNS settings".
  2. Under "Custom records" create the record with type, host and data.

DKIM record at Wix

  1. In the Wix account open "Domains" and choose "Manage DNS records" next to the domain.
  2. Under the matching type choose "Add record", enter host name and value, save.

DKIM record at Shopify

  1. In the Shopify admin open "Settings" → "Domains" and select the domain.
  2. Open "DNS settings", "Add custom record", enter type, name and value, confirm.

DKIM record at INWX

  1. At INWX open "Nameserver" and select the domain.
  2. "Add record", enter type, name and value, save.

DKIM record at dogado

  1. In the dogado customer area open the domain and choose "DNS".
  2. Create the record with type, name and value, save.

DKIM record at Variomedia

  1. In the Variomedia customer menu open the domain and choose "DNS settings".
  2. Create the record with type, name and value, save.

DKIM record at Namecheap

  1. At Namecheap open "Domain List", "Manage" and the "Advanced DNS" tab.
  2. "Add New Record", enter type, host and value, save.

DKIM record at Gandi

  1. At Gandi open the domain and choose "DNS records".
  2. "Add a record", enter type, name and value, create.

DKIM record at Vercel

  1. In the Vercel dashboard open "Domains" and select the domain.
  2. Under "DNS Records" enter type, name and value, "Add".

DKIM record by mail provider

DKIM record for Microsoft 365

  • In the Microsoft Defender portal open "Email authentication settings" → "DKIM" and select the domain.
  • Create the two CNAME records selector1._domainkey and selector2._domainkey shown there at your DNS host (targets end in .onmicrosoft.com).
  • Then enable "Sign messages with DKIM" in the portal; Microsoft verifies the CNAMEs and activates signing.

DKIM record for Google Workspace

  • In the Google Admin console open "Apps" → "Google Workspace" → "Gmail" → "Authenticate email".
  • Select the domain, "Generate new record" (2048 bit, selector google) and copy the TXT value.
  • Create google._domainkey as TXT with that value at your DNS host, then click "Start authentication" in the Admin console.

DKIM record for IONOS

  • In the IONOS account open "Email" and enable DKIM signing for the domain; with IONOS name servers the DNS records are created automatically.
  • If the name servers are elsewhere, create the CNAME records shown there.

DKIM record for STRATO

  • In the STRATO login open the domain under "Email" and enable DKIM; with STRATO name servers the key is added automatically.
  • With external name servers create the TXT or CNAME record shown there.

DKIM record for ALL-INKL

  • In KAS choose the domain under "Email" → "DKIM" and enable DKIM; KAS creates the TXT record with its own name servers.
  • KAS shows the SPF value under "Email" → "SPF"; v=spf1 mx a ~all is common when only the ALL-INKL servers send.

DKIM record for Hetzner

  • In konsoleH generate the key under "Email" → "DKIM" and create the TXT record shown (selector dkim) in DNS.
  • Hetzner names the SPF value under "Email" → "SPF"; include:spf.your-server.de is common for web hosting packages.

DKIM record for mailbox.org

  • In the mailbox.org settings open the domain under "Email" → "Domains"; create the DKIM CNAME records (MBO0001._domainkey and MBO0002._domainkey) at your DNS host.

DKIM record for Posteo

  • Posteo does not support custom domains; mail with this domain is not signed by Posteo. Check which service actually sends.

DKIM record for Proton Mail

  • In the Proton settings open "Domain names" and create the three DKIM CNAME records shown (protonmail._domainkey, protonmail2._domainkey, protonmail3._domainkey) at your DNS host.

DKIM record for Zoho Mail

  • In the Zoho admin console open "Domains" → domain → "Email configuration" → "DKIM", create a selector and add the TXT value at your DNS host, then "Verify".
  • Accounts outside the EU use include:zoho.com for SPF.

DKIM record for Hornetsecurity

  • DKIM is enabled per domain in the Hornetsecurity Control Panel; create the record shown at your DNS host. If the actual mail server (e.g. Microsoft 365) sends behind Hornetsecurity, its include belongs in SPF as well.

DKIM record for Mimecast

  • In the Mimecast administration create "Gateway" → "DNS Authentication" → "Outbound Signing Definitions"; create the record shown at your DNS host.
  • Outside the EU SPF uses include:us._netblocks.mimecast.com or include:_netblocks.mimecast.com.

DKIM record for Proofpoint

  • Proofpoint assigns SPF and DKIM values per customer; find them in the Proofpoint console under "Domains". Create the include and the DKIM record shown there at your DNS host.

DKIM record for Cloudflare Email Routing

  • Cloudflare Email Routing only forwards and does not send; add the SPF include and DKIM records of the platform you actually send with.

DKIM record for Mittwald

  • In mStudio open the domain under "Email" and enable DKIM; Mittwald adds the records with its own name servers.
  • mStudio shows the SPF value next to the domain.

DKIM record for netcup

  • In the web hosting panel (Plesk) enable DKIM for the domain under "Mail" → "Mail settings"; with netcup name servers the records are added.
  • SPF: v=spf1 mx ~all is common with netcup web hosting when only the netcup servers send.

DKIM record for Host Europe

  • In KIS open the domain under "Email" and enable DKIM; with external name servers create the record shown yourself.

DKIM record for domainfactory

  • In the domainfactory customer menu enable DKIM for the domain under "Email"; with external name servers create the record shown yourself.

DKIM record for united-domains

  • In the united-domains portfolio open the domain under "Email"; SPF and DKIM values are shown there and set automatically with its own name servers.

DKIM record for Fastmail

  • In the Fastmail settings open "Domains"; create the three DKIM CNAME records (fm1._domainkey to fm3._domainkey) at your DNS host.

DKIM record for iCloud Mail

  • In the iCloud settings open "Custom Email Domain"; create the DKIM CNAME shown (sig1._domainkey) at your DNS host.

DKIM record for OVHcloud

  • In the OVHcloud control panel open the domain under "Emails" and enable DKIM; OVH adds the records with its own DNS zone.

DKIM record for GMX / WEB.DE

  • GMX and WEB.DE only sign their own domains. If this domain sends through another service, add that service’s SPF and DKIM values.

Guides for this tool

More tools

Free tool

SPF Checker

Free SPF record check and lookup: syntax, includes, the 10 DNS lookup limit and the closing qualifier. Shows whether your domain blocks forged senders.

Open tool →
Free tool

DMARC Checker

Free DMARC record check and lookup: policy (none, quarantine, reject), pct, reporting addresses and syntax errors. With recommendations for moving to p=reject.

Open tool →
Free tool

DNS Checker

Free DNS lookup straight from the authoritative name server: A, AAAA, CNAME, MX, TXT, NS and CAA records at a glance. No sign-up, every record explained.

Open tool →
Free tool

MX Checker

Free MX lookup: which mail servers receive for a domain, do they resolve, is the priority right? Detects missing and unreachable mail servers.

Open tool →
Free tool

SSL Checker

Free SSL certificate check: expiry date, issuer, chain, host name, alternative names and TLS version. Detects expired, self-signed and mismatched certificates.

Open tool →
Free tool

HTTP Header Checker

Free HTTP header check: HSTS, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, Referrer-Policy and Permissions-Policy with recommendations.

Open tool →
Free tool

Redirect Checker

Free 301 redirect check: every hop with status code and response time, from http to https, from www to non-www. Detects redirect chains, loops and 302s.

Open tool →
Free tool

DNSSEC Checker

Free DNSSEC test: DS record, resolver validation and broken signature chains. Shows whether validating resolvers like Google or Cloudflare reach your domain.

Open tool →
Free tool

MTA-STS Checker

Free MTA-STS check: DNS record, policy file, mode, max_age and whether your MX servers are covered. Shows whether inbound mail enforces TLS.

Open tool →
Free tool

TLS-RPT Checker

Free TLS-RPT record check: syntax, reporting addresses (rua) and common errors such as a missing record. Shows whether you get reports on TLS failures.

Open tool →
Free tool

BIMI Checker

Free BIMI record check: syntax, logo URL, SVG Tiny PS, VMC certificate and the DMARC prerequisite. Shows why your logo does not appear in Gmail.

Open tool →
Free tool

Blacklist Check

Free IP blacklist and domain blacklist check: mail server IPs, website IP and domain against Spamhaus, Spamcop, Barracuda, PSBL and SURBL. With delisting links.

Open tool →
Free tool

Domain Checker

Free domain check: expiry date, registrar, EPP status, transfer lock and name servers straight from the registry via RDAP. Warns about expiry and holds.

Open tool →