Free DKIM Checker
Enter any domain to scan for DKIM public keys. We check common selectors used by Google Workspace, Microsoft 365, SendGrid, Mailchimp, and others. You can also enter your own selectors to verify specific signing configurations.
Need to create a DKIM record? Use our DKIM Generator. Setting up DKIM for the first time? The set-up steps for your provider are below the checker.
What is DKIM?
DKIM (DomainKeys Identified Mail) adds a cryptographic signature to every outbound email. The sending server signs the message with a private key, and the receiving server looks up the corresponding public key in DNS to verify the signature. If the signature is valid, the receiver knows the message was not tampered with in transit and that it genuinely came from the claimed domain.
A DKIM DNS record is a TXT record published at selector._domainkey.yourdomain.com, where "selector" is a label chosen by your email provider (e.g. google for Google Workspace, selector1 for Microsoft 365).
Why DKIM Matters
- Prevents tampering: DKIM proves that the email body and key headers have not been modified after the sender signed them.
- Supports DMARC alignment: DMARC can use DKIM alignment (the d= domain in the signature matching the From header) to authenticate messages, even when SPF fails due to forwarding.
- Improves deliverability: Major receivers (Google, Microsoft, Yahoo) use DKIM as a positive signal when deciding whether to deliver, spam, or reject a message.
- Not covered by the Security Grade: DNS gives no way to list a domain's selectors, so the Security Grade Checker leaves DKIM out rather than mark a domain down for a key it could not find. Check it here instead.
Common DKIM Selectors by Provider
| Provider | Selector(s) | Record Type |
|---|---|---|
| Google Workspace | TXT | |
| Microsoft 365 | selector1, selector2 | CNAME |
| SendGrid | s1, s2 | CNAME |
| Mailchimp | k2, k3 (k1 on older set-ups) | CNAME |
| Mailchimp Transactional | mte1, mte2 (mandrill on older set-ups) | CNAME |
| Amazon SES | (auto-generated) | CNAME |
| Proton Mail | protonmail, protonmail2, protonmail3 | CNAME |
Every check tries google, selector1, selector2, s1, s2, k1 and protonmail, plus other common selectors. When you are signed in, it also tries mandrill, protonmail2, protonmail3 and a longer list for other platforms. It also reads the domain's MX and SPF records and tries the selectors of the providers they name, so a Proton Mail domain is checked at all three of its selectors whether or not you are signed in. Amazon SES creates selectors for each domain, so enter yours in the custom selectors field. Add any other selector your provider gave you there too, up to 10.
What This Tool Checks
- Selector scanning: Probes common DKIM selectors used by major email providers
- Public key presence: Whether a valid DKIM TXT or CNAME record exists for each selector
- Published record: The full key record for each selector that has one
- SPF and DMARC context: Whether the domain also has SPF and DMARC configured
How to set up DKIM for your email provider
Each provider below creates the DKIM key pair for you. It keeps the private key to sign your mail, and you publish the public key, or a pointer to it, at a selector under _domainkey in your DNS. The pattern is the same for each of them: turn DKIM on in the provider's admin console, publish the record it gives you exactly as shown, then let the provider check it and start signing.
You need an administrator account at the provider and access to your domain's DNS, which is usually managed at your registrar (such as Cloudflare, GoDaddy or Namecheap) or your hosting provider. Some providers give you a TXT record that holds the public key itself. Others give you CNAME records that point at a key they host, so they can change the key without you editing DNS.
Google Workspace
Google Workspace signs with the selector google and uses one TXT record.
- In the Google Admin console, go to Apps > Google Workspace > Gmail > Authenticate email.
- Select your domain and click Generate New Record. Choose a 2048-bit key and leave the prefix selector as
google. - Publish the TXT record Google shows at
google._domainkey.example.com. - Return to the Admin console and click Start authentication.
Host: google._domainkey.example.com
Type: TXT
Value: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A...Our guide to DMARC for Google Workspace covers SPF and DMARC for the same domain.
Microsoft 365
Microsoft 365 uses two CNAME records, at selector1._domainkey and selector2._domainkey, that point at keys Microsoft hosts.
- In the Microsoft Defender portal (
security.microsoft.com), go to Email & collaboration > Policies & rules > Threat policies > Email authentication settings and open the DKIM tab. - Open your custom domain and copy the two values under Publish CNAMEs. If none are shown yet, try to turn signing on first: Microsoft then creates the keys.
- Publish both CNAME records at your DNS host exactly as given.
- Once they resolve, return to the domain and turn on Sign messages for this domain with DKIM signatures.
Microsoft changed the CNAME format in May 2025. Domains set up since then get a target ending in dkim.mail.microsoft that includes a character Microsoft assigns and you cannot work out yourself, so copy the values from the portal or from Get-DkimSigningConfig rather than from an example. Because the records point at Microsoft, rotating the key later needs no DNS change. Our guide to DMARC for Office 365 and Microsoft 365 walks through both routes.
Amazon SES
Amazon SES uses Easy DKIM: three CNAME records, each named after a token SES generates for your domain.
- In the Amazon SES console, open Identities and select your domain, or create it.
- Under Authentication, turn on Easy DKIM with an RSA 2048-bit key.
- Publish the three CNAME records SES shows.
- SES detects the records and starts signing on its own.
Host: abcdef1234._domainkey.example.com
Type: CNAME
Value: abcdef1234.dkim.amazonses.comThe tokens are unique to your domain, so the checker cannot guess them: enter one in the custom selectors field above. If a third-party app sends through SES for you, set DKIM up in that app's settings instead. It should give you its own records to publish.
SendGrid
SendGrid uses CNAME records at s1._domainkey and s2._domainkey.
- In SendGrid, go to Settings > Sender Authentication and, under Domain Authentication, click Get Started.
- Choose your DNS host, enter your domain and follow the wizard.
- Publish the CNAME records it shows. Their values are unique to your account, so copy them from the wizard rather than from an example.
- Return to SendGrid and click Verify.
Mailchimp
Mailchimp uses two CNAME records. Click your profile icon, choose Account & billing, open the Domains tab and click Start authentication next to your domain. Publish the two CNAME records Mailchimp shows, then return to the Domains page and click Next.
HubSpot
HubSpot uses CNAME records whose names begin hs1 and hs2. Click the settings icon, go to Content > Domains & URLs, open the Email Sending tab and click Connect sending domain. Enter an address you send marketing email from, follow the prompts, publish the CNAME records HubSpot shows, then verify them in HubSpot.
Zoho Mail
Zoho Mail uses one TXT record at a selector you name. In the Zoho Mail Admin Console, go to Domains, select your domain, open Email configuration > DKIM and click Add. Enter a selector name such as zmail, publish the TXT record Zoho generates at zmail._domainkey.example.com, then return to Zoho, click Verify and enable DKIM when Zoho asks.
Postmark, Mailgun, Brevo and other platforms
Other sending platforms follow the same pattern: add your domain in the platform's domain or sender settings, publish the TXT or CNAME records it shows, then use its verify button. The record names include the selector, so copy them rather than retyping them, and enter that selector in the custom selectors field above if the checker does not find it.
How to check DKIM is working
Run the checker at the top of this page once the record is published. It shows the record at each selector it finds, with the key type and size, and flags a key that is cut short, revoked or in testing mode.
Then send a message from the domain to a Gmail or Outlook mailbox, open its full headers and look for dkim=pass in the Authentication-Results header, with your own domain as the signing domain. DMARC counts a DKIM pass only when that domain aligns with the From address. Our Email Header Analyser reads the result and the alignment for you.
Common DKIM problems and fixes
- Record not found after publishing: DNS changes can take up to 48 hours to reach every resolver. Check the host name as well. Many DNS hosts add your domain to whatever you type, so
google._domainkey.example.comentered in full becomesgoogle._domainkey.example.com.example.com. On those hosts, entergoogle._domainkeyalone. - Selector mismatch: receivers look up the key at the selector in the
s=tag of the DKIM-Signature header, so publish it under exactly the selector your provider signs with. - Key cut short: a TXT string holds at most 255 characters, so a 2048-bit key is split into quoted strings that receivers join back together. Many DNS hosts split it for you. If the checker says the key is not a complete RSA key, paste the full value again.
- Testing mode left on:
t=ytells receivers you are testing DKIM, so they treat a message whose signature fails like an unsigned one (RFC 6376). Remove it once DKIM passes. - 1024-bit key: RFC 8301 sets 1024 bits as the minimum for RSA keys and says signers should use at least 2048. Generate a 2048-bit key in your provider's console. Where you publish the key yourself, put the new one under a new selector and remove the old record once nothing signs with it.
Keys can also change after set-up, when a provider rotates them or someone edits your DNS. On the Professional and MSP plans, and free during the 30-day trial, ShieldMarc's DKIM monitor re-checks a domain's keys daily and emails you when one is removed, revoked or weakened.
DKIM, SPF, and DMARC: The Complete Picture
DKIM is one of three email authentication protocols. SPF verifies the sending server, DKIM verifies the message integrity, and DMARC ties them together with a policy that tells receivers what to do when both fail. For full protection, you need all three.
Check all three protocols at once with our DMARC Checker, or learn how they work together in our SPF vs DKIM vs DMARC guide.
Frequently Asked Questions
What is a DKIM selector?
A DKIM selector is a label that identifies which signing key to look up in DNS. It is included in the DKIM-Signature header of every signed email (the s= tag). Each email provider uses its own selector(s), and a domain can have multiple selectors for different sending services.
Why are no DKIM selectors found for my domain?
This usually means DKIM signing has not been enabled in your email provider, the DNS records have not been published, or your provider uses a non-standard selector. Try entering your provider's specific selector in the custom field. The set-up steps for your provider above show where to turn DKIM on.
Should I use RSA or Ed25519 for DKIM?
RSA with 2048-bit keys is the most widely supported option. Ed25519 offers smaller keys and faster verification, but support among receivers is not yet universal. If your provider supports Ed25519, you can publish both an RSA and Ed25519 key under different selectors for maximum compatibility.
Does DKIM work with subdomains?
Yes. DKIM is tied to the domain in the signature's d= tag. If your provider signs with d=mail.example.com, publish the key under that subdomain, for example selector._domainkey.mail.example.com, and enter the subdomain in the checker above to check it. With relaxed DMARC alignment, the default, a signature from a subdomain still aligns with the parent domain.
Does DKIM affect my Security Grade?
Not directly. The Security Grade scores what the scan can observe in DNS and TLS, and DKIM is left out of it. DNS gives no way to discover which selectors a domain uses, so a scan cannot tell a domain that is not signing from one signing with a selector it did not try. That is what this checker is for. Run the Security Grade for the DMARC, SPF, transport and DNS side.