No DKIM Selectors Found
Domain Guarddog checked for common DKIM selectors on your domain but didn't find any. This could mean DKIM isn't configured, or your domain uses uncommon selector names. Here's how to determine which case applies and how to fix it.
What this result means
Domain Guarddog scans your domain's DNS for DKIM public keys by checking a list of
commonly used selector names (such as google, selector1,
selector2, s1, s2, k1,
default, and others). If none of these returned a valid DKIM record,
you're seeing this warning.
There are two possibilities when no common selectors are found:
DKIM is not configured
Your domain doesn't have any DKIM keys published in DNS. Emails sent from your domain are not being signed with DKIM, which weakens your email authentication and may impact deliverability.
DKIM uses uncommon selectors
Your domain does have DKIM configured, but the selector names are unique or provider-specific strings that aren't in the common list Domain Guarddog checks. Your DKIM may be working fine.
The best way to determine which case applies is to check the headers of an email sent from your domain, as described in the next section.
How to check if DKIM is actually configured
The most reliable way to confirm whether DKIM is active on your domain is to inspect the headers of an email you've sent. The email headers will show the exact selector being used and whether DKIM verification passed.
Send a test email
Send an email from your domain to a Gmail account (or another provider that shows full authentication results in headers).
View the original message headers
In Gmail, open the email, click the three-dot menu in the top right, and select "Show original." In Outlook, open the message properties to view the full internet headers.
Search for "DKIM-Signature"
Look for a DKIM-Signature header in the email. If present, your mail server is signing emails with DKIM. The s= tag shows the selector name being used.
Check the Authentication-Results header
Look for the Authentication-Results header. A result of dkim=pass confirms DKIM is fully working. A result of dkim=fail or no DKIM mention means there's a problem.
What a DKIM-Signature header looks like
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=myselector;
h=from:to:subject:date:message-id;
bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
b=AuUoFEfDxTDkHlLXSZEpZj79LICEps6eda7W3deTVFOk...
In this example, s=myselector tells you the selector name is myselector.
If you find a DKIM-Signature header, your DKIM is configured — Domain Guarddog simply
didn't check for that particular selector name.
What the Authentication-Results header looks like
Authentication-Results: mx.google.com;
dkim=pass [email protected] header.s=myselector header.b=AuUoFEfD;
spf=pass (google.com: domain of [email protected] designates 1.2.3.4 as permitted sender);
dmarc=pass (p=REJECT) header.from=example.comSet up DKIM: Google Workspace
If your domain uses Google Workspace (Gmail) for email, follow these steps to enable DKIM signing:
Open the Google Admin console
Go to admin.google.com and navigate to Apps → Google Workspace → Gmail → Authenticate email.
Generate a DKIM key
Select your domain and click "Generate new record." Choose 2048-bit key length if your DNS provider supports records longer than 255 characters (most do). The default selector prefix is google.
Add the DNS record
Add the TXT record that Google provides to your domain's DNS:
Host: google._domainkey
Type: TXT
Value: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...Enable DKIM signing
Wait for DNS propagation (up to 48 hours, usually much faster), then return to the Google Admin console and click "Start authentication." Google will verify the DNS record and begin signing outgoing emails.
Set up DKIM: Microsoft 365
Microsoft 365 uses a CNAME-based approach that allows automatic key rotation. Follow these steps to enable DKIM:
Add CNAME records to your DNS
Add two CNAME records that point to Microsoft's DKIM infrastructure. Replace yourdomain-com with your domain (dots replaced with dashes) and yourtenantname with your Microsoft 365 tenant name.
Host: selector1._domainkey
Type: CNAME
Value: selector1-yourdomain-com._domainkey.yourtenantname.onmicrosoft.com
Host: selector2._domainkey
Type: CNAME
Value: selector2-yourdomain-com._domainkey.yourtenantname.onmicrosoft.comEnable DKIM in Microsoft 365 Defender
Go to the Microsoft 365 Defender portal (security.microsoft.com) → Email & collaboration → Policies & rules → Threat policies → Email authentication settings → DKIM.
Toggle DKIM signing on
Select your domain and toggle "Sign messages for this domain with DKIM signatures" to enabled. Microsoft will verify the CNAME records and begin signing.
Set up DKIM: Generic / custom mail server
If you run your own mail server (Postfix, Exim, etc.) or use a provider not covered above, you'll need to generate a DKIM key pair manually and configure your server to sign outgoing emails.
Generate a DKIM key pair
Use OpenDKIM (or a similar tool) to generate a 2048-bit RSA key pair. The -s flag sets the selector name and -d sets the domain:
opendkim-genkey -s mail -d example.com -b 2048
This creates two files: mail.private (the private key for your server)
and mail.txt (the DNS record to publish).
Publish the public key in DNS
Add the contents of the generated .txt file as a TXT record in your domain's DNS. The record should be at mail._domainkey.example.com (or whatever selector name you chose):
Host: mail._domainkey
Type: TXT
Value: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...Configure your mail server to sign emails
Install and configure OpenDKIM (or an equivalent milter) on your mail server. Point it to the private key file and configure your MTA (e.g., Postfix) to use it as a mail filter for outgoing messages.
Test and verify
Send a test email and check the headers (as described above) to confirm that emails are being signed and that DKIM verification passes.
chmod 600) and be readable only by the mail server
process. Never share, email, or commit private keys to version control. If compromised,
attackers can forge DKIM-signed emails from your domain.
How to verify DKIM is working
After setting up DKIM, verify that your configuration is correct by testing the DNS record and sending a test email.
Query the DNS record directly
Use dig (Linux/macOS) or nslookup (Windows) to verify that your DKIM public key is published:
# For a TXT record (e.g., Google Workspace with selector "google"):
dig TXT google._domainkey.example.com +short
# For a CNAME record (e.g., Microsoft 365):
dig CNAME selector1._domainkey.example.com +shortOn Windows:
nslookup -type=TXT google._domainkey.example.com
nslookup -type=CNAME selector1._domainkey.example.com
A successful response for a TXT record will contain v=DKIM1 and a p=
tag with the public key data. A successful CNAME response will show the target hostname
of your provider's DKIM infrastructure.
Send a test email and check headers
Send an email from your domain
Send a test email to a Gmail, Outlook, or Yahoo account. These providers include detailed authentication results in the email headers.
View headers and check for dkim=pass
Open the email, view the original/raw headers, and look for the Authentication-Results header. You should see:
Authentication-Results: mx.google.com;
dkim=pass [email protected] header.s=google header.b=AuUoFEfD;
If you see dkim=pass, your DKIM configuration is working correctly. If you
see dkim=fail or dkim=neutral, there may be a mismatch between
the DNS record and the signing configuration on your mail server.
Example DKIM DNS records
Here are example DKIM DNS records for the most common setups. Replace the public key data with the actual key provided by your email service or generated by your key tool.
Google Workspace (TXT record)
Host: google._domainkey.example.com
Type: TXT
Value: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
dG1wFmxMxRVaKSPGCqiX2GtMD20sMYHkfSGBSbFhJNLB
jf9KpO7JMmqKXYGMETtYC...Microsoft 365 (CNAME records)
Host: selector1._domainkey.example.com
Type: CNAME
Value: selector1-example-com._domainkey.contoso.onmicrosoft.com
Host: selector2._domainkey.example.com
Type: CNAME
Value: selector2-example-com._domainkey.contoso.onmicrosoft.comSendGrid (CNAME records)
Host: s1._domainkey.example.com
Type: CNAME
Value: s1.domainkey.u12345.wl.sendgrid.net
Host: s2._domainkey.example.com
Type: CNAME
Value: s2.domainkey.u12345.wl.sendgrid.netMailchimp / Mandrill (CNAME record)
Host: k1._domainkey.example.com
Type: CNAME
Value: dkim.mcsv.netCustom mail server / OpenDKIM (TXT record)
Host: mail._domainkey.example.com
Type: TXT
Value: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
xYz123abc456def789ghi012jkl345mno678pqr901stu
234vwx567yzABC890DEF...For a comprehensive overview of DKIM, including how the protocol works, DKIM-Signature header tags, and common mistakes to avoid, see our complete DKIM guide.
Set up DKIM and monitor your email security
Domain Guarddog continuously monitors your domain's DKIM, SPF, and DMARC configuration and alerts you when something changes or needs attention.
Get Started Free