How to set up DMARC (step by step)
DMARC is one short DNS record that tells Gmail, Outlook and every other mail service what to do with email that pretends to come from your domain but fails the checks: deliver it, send it to spam, or reject it. Without it, anyone can send email “from” your company address. Before you start, run your domain through the SPF, DKIM & DMARC checker: it tells you what you already have and gives you the exact records to add.
What you need first: SPF and DKIM
DMARC only works on top of the two older checks, so set those up first:
- SPF
- A TXT record on your domain listing the services allowed to send your email. You can have only one SPF record; add every sender to it.
- DKIM
- A digital signature your email provider adds to every message, with the public key published in your DNS. Each sending service (Microsoft 365, Google, Mailchimp…) has its own.
- DMARC
- The rule: an email passes if SPF or DKIM passes and matches the domain in the From address. Otherwise your policy applies.
Step 1: list everything that sends email as you
This is the step people skip, and it’s why DMARC sometimes blocks real email. Write down every system that sends email with your domain in the From address: your mailbox provider, newsletter tool (Mailchimp, Brevo), accounting or invoicing software (Xero, Sage, QuickBooks), your website’s contact form, your CRM, booking or helpdesk system. Each one needs to be in SPF or have its own DKIM set up (their help pages explain how).
Step 2: set up SPF and DKIM for your provider
Microsoft 365
- SPF: one TXT record on your domain (name
@):v=spf1 include:spf.protection.outlook.com -all. Add other senders’ includes before-all. - DKIM: open the Microsoft Defender portal (security.microsoft.com), go to Email & collaboration → Policies & rules → Threat policies → Email authentication settings → DKIM, pick your domain and copy the two CNAME records it shows (
selector1._domainkeyandselector2._domainkey). Add them at your DNS host, wait for them to spread, then switch Sign messages for this domain with DKIM signatures on.
Google Workspace
- SPF: TXT on
@:v=spf1 include:_spf.google.com ~all. - DKIM: in the Google Admin console go to Apps → Google Workspace → Gmail → Authenticate email, choose your domain, click Generate new record (2048-bit), add the TXT record it shows at
google._domainkey, wait an hour, then click Start authentication.
Other hosts (cPanel, Zoho, Afrihost, Xneelo, etc.)
Look for “Email Deliverability”, “Email Authentication” or “DKIM” in your hosting panel. Most hosts create SPF and DKIM with one click. Then check both show up in the checker.
Step 3: add the DMARC record (monitor mode)
At your DNS host, add a TXT record:
- Name / host
_dmarc(some panels want the full_dmarc.yourdomain.com)- Value
v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com
p=none means “don’t block anything yet, just send me reports”. The rua address receives daily summary reports (XML files) from Gmail, Outlook, Yahoo and others showing who sends email as you and whether it passes. Create that mailbox or use an existing one. Confirm the record is live everywhere with the DNS propagation checker (put in your own domain).
Step 4: read the reports for 2 to 4 weeks
The raw reports are hard to read, so most people paste them into a free DMARC report viewer or use their email security tool. What you’re looking for: real services of yours that fail. Fix each one (add it to SPF, or turn on its DKIM) before moving on. Anything failing that you don’t recognise is likely someone faking your domain, which is exactly what DMARC will stop.
Step 5: turn on protection
- Change the policy to
p=quarantine: failing email goes to spam. You can ease in withpct=25(applies to a quarter of failing mail), then 50, then 100. - After another couple of weeks with no real email failing, change to
p=reject: fake email is refused outright. That’s full protection, and the checker will show “Your email is protected”.
A finished record looks like v=DMARC1; p=reject; rua=mailto:dmarc@yourdomain.com.
Common mistakes
- Two DMARC records (or two SPF records): mail services then ignore both. Merge them into one.
- Putting DMARC on the main domain instead of
_dmarc. It must live at_dmarc.yourdomain.com. - Jumping straight to reject before checking reports: invoices from your accounting system or website form emails suddenly vanish.
- Too many SPF includes: SPF allows at most 10 DNS lookups. The checker counts them for you; remove services you no longer use.
- Reports to another company’s domain: if
ruapoints to a different domain, that domain must publish a permission record, or reports won’t arrive. Report services set this up for you. - Forgetting parked domains: domains you own but don’t send email from should get
v=spf1 -allandv=DMARC1; p=rejectso scammers can’t use them.
Why it matters now
Since 2024 Gmail and Yahoo require a DMARC record from anyone sending large volumes to their users, and Microsoft followed for Outlook.com in 2025. Even small businesses benefit: DMARC stops scammers sending fake invoices “from” you to your customers, and properly authenticated email is less likely to land in spam (see why emails go to spam).
Frequently asked questions
Is DMARC free?
Yes. DMARC, SPF and DKIM are just DNS records you add at your domain or DNS host. Paid services only help you read the reports.
How long does DMARC take to work?
The record usually spreads within minutes to a few hours. Mail services then apply it immediately; report emails start arriving within a day or two.
Will DMARC stop my emails going to spam?
It helps, because big mail services trust authenticated domains more, but content, sending reputation and complaints matter too. DMARC’s main job is to stop other people faking your domain.
What does p=none mean?
Monitor only: mail services deliver failing email as normal but send you reports. It doesn’t protect you yet. Move to quarantine and then reject once your real email passes.
Do I need DMARC if I only use Gmail or Outlook.com?
No. DMARC is for your own domain (you@yourcompany.com). Free addresses like @gmail.com are protected by Google and Microsoft already.
More guides
- What is IPv6?
- How to find your IP address (every device)
- Public vs private IP address
- What is CGNAT (carrier-grade NAT)?
- How to hide your IP address
- How to find your PS5 IP address
- How to find your Xbox IP address
- How to find your smart TV’s IP address
- How to find your router’s IP address
- What is a good internet speed?
- Why is my internet slow at night?
- How to change DNS on Windows 11 and 10
- How to change DNS on a Mac
- How to change DNS on your router
- Public DNS servers compared
- Why port forwarding isn’t working
- Keeping your internet on during load-shedding
- Fibre vs LTE vs 5G in South Africa
- How to check if a port is open
- How to create a strong password
- What is a user agent?
- How to find your MAC address
- What is a good ping?
- Subnet mask cheat sheet (CIDR table)
- How to find who owns an IP address
- How to find who owns a domain
- How to flush your DNS cache
- How to check if an IP address is a VPN
- What is an ASN (autonomous system number)?
- How to fix DNS_PROBE_FINISHED_NXDOMAIN
- Why are my emails going to spam?
- How to spot WhatsApp and SMS scams
- How to fix SPF “too many DNS lookups”
- What to do if you’ve been scammed (South Africa)
- How to view full email headers
- How to tell if an email is fake
- What is CIDR notation?
- IPv6 subnet cheat sheet (prefix chart)
- What is an IP address?