emailauthfix

DMARC setup Microsoft 365 — SPF, DKIM, DMARC records for Exchange Online

Microsoft 365 is the most common domain in our free checker at around 9 lookups just for Microsoft, because Microsoft's SPF include chains four _spf hosts. Once you add a marketing sender such as Mailchimp or SendGrid, the record silently passes 10 lookups and Receivers reject your mail — renaming to a flattened list is the common fix.

Records Microsoft 365, Office 365 needs

RecordValue
SPF (TXT, host @)v=spf1 include:spf.protection.outlook.com ~all
DKIM (2 CNAMES at selector1._domainkey, selector2._domainkey)<CNAMEs from Microsoft 365 admin center, DKIM page>
DMARC (TXT, host _dmarc)v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com

Replace the placeholder parts (such as yourdomain.com or a generated key) with your own values. DKIM keys and subdomain CNAMES are never copied from a web page — generate yours in your own provider's console.

Merging SPF when you send from more than one source

Only ONE SPF record may exist per domain. If mail goes out through more than one service, the record carries a single v=spf1, one include: per source, and one -all (or ~all) at the end:

v=spf1 include:provider-a.com include:provider-b.net ~all

Each include costs one lookup and nested includes cost more; over 10 lookups receivers return PermError and treat your mail as if SPF failed entirely.

The 10-lookup limit

SPF counts every include:, a, mx, ptr, exists: and redirect= against a limit of 10 DNS lookups — and nested includes count too. Microsoft 365, Office 365's include is one lookup, but every merge pushes you closer to the cap. Our free checker counts for you; our USD 24 report gives you a flattened record that stays under the limit.

Official documentation

  1. Set up SPF
  2. Set up DKIM
  3. Set up DMARC

All links go to the provider's own docs; values in the table are examples, not copies of their pages.

Run your domain through the free checker before changing anything, so you know which records you already have.

Want the exact records for your domain?

For USD 24 we look up every TXT, CNAME and MX record your domain serves, count your SPF lookups, probe DKIM selectors, and write the exact records to paste — one SPF record, no PermError, DMARC at p=none with reporting — plus a free re-check after you apply them.

Get my fix report — USD 24