Microsoft 365 SPF, DKIM and DMARC check
Enter the domain you send from with Microsoft 365. We check the SPF include, the Microsoft 365 DKIM key, your DMARC policy and MX records, and tell you what is missing.
What Microsoft 365 expects
SPF
Add include:spf.protection.outlook.com to your single SPF record, for example: v=spf1 include:spf.protection.outlook.com ~all
Costs 1 of your 10 SPF lookups (checked October 2026).
Build a combined SPF record if you send from more than one service.
DKIM
Selectors we look for: selector1selector2
Microsoft 365 publishes DKIM as two CNAME records (selector1._domainkey and selector2._domainkey) that point to keys Microsoft hosts and rotates. Copy the exact targets from the Microsoft Defender portal (Email authentication settings > DKIM), then enable signing for the domain.
DMARC
DMARC is set on your domain, not in Microsoft 365. If you have none, start with v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com and tighten it once reports look clean. Generate one.
MX
<your-domain-with-dashes>.mail.protection.outlook.com (newer tenants may be shown a mx.microsoft host).
Values come from Microsoft 365’s public setup documentation and can change. The Microsoft Defender portal always shows the exact records for your account. Use those if they differ from this page.
Keep it working after setup
The usual failures come later: a second SPF record added for a new tool, a DKIM CNAME lost in a DNS move, a DMARC record deleted with an old zone. SenderBeacon checks twice a day and emails you in plain English. From $9/month, 14-day free trial, no card.
Start free trialQuestions
How long until Microsoft 365 DNS changes show up?
Usually minutes, sometimes up to an hour, depending on the TTL on your records and your DNS host. Re-run the check after publishing.
Why does the check say DKIM is missing when Microsoft 365 says it is verified?
Most often the record went on the wrong host (for example _domainkey.yourdomain.com.yourdomain.com, because the DNS host appended the domain twice), or you are checking a different domain or subdomain than the one you send from.