What is DMARC?

DMARC is a DNS record that tells inboxes what to do with mail that fails SPF and DKIM: deliver it, send it to spam, or reject it. It also sends you reports on everyone sending email as your domain.

Updated · 7 min read

TXT_dmarc.acme.com
Verified

v=DMARC1; p=reject; rua=mailto:dmarc@acme.com

DMARC policy

Enforced
NoneQuarantineReject

Mail that fails DMARC is refused

How DMARC works

SPF and DKIM say whether a message passed a check. DMARC adds two things: it requires the domain that passed to match the one in the From address, and it tells the receiver what to do when nothing does.

  1. SPF and DKIM run

    The receiving server checks both. At least one has to pass for DMARC to pass.
  2. Alignment is checked

    The domain that passed SPF or DKIM must match the domain in the From header. This is called identifier alignment.
  3. Your policy is applied

    If a check passes and aligns, the message is delivered. If not, the receiver follows your policy: none, quarantine or reject.
  4. You get a report

    Receivers send daily reports to the address in your record, covering every message that claimed to be from your domain.

Your receipt from Acme

From billing@acme.com

DKIM, acme.com
Pass
Aligned
Yes
DMARC
Pass

Your account is on hold

From billing@acme.com

SPF, mailer.net
Pass
Aligned
No
DMARC
Fail
Both messages pass a check. Only the one signed by acme.com aligns with the From address.

DMARC does not work on its own. Set up SPF and DKIM first.

Reading a DMARC record

A DMARC record is a TXT record at _dmarc.yourdomain.com. Only the version and the policy are required.

TXT record on _dmarc.acme.com
v=DMARC1; p=quarantine; rua=mailto:dmarc@acme.com; ruf=mailto:forensic@acme.com; pct=100; adkim=r; aspf=r
TagWhat it meansRequired
vThe version. Always DMARC1.Yes
pThe policy: none, quarantine or reject.Yes
ruaWhere to send aggregate reports.Recommended
rufWhere to send forensic reports on single failures.Optional
pctThe percentage of failing mail the policy applies to (0 to 100).Optional
spThe policy for subdomains.Optional
adkimDKIM alignment: r (relaxed) or s (strict).Optional
aspfSPF alignment: r (relaxed) or s (strict).Optional

Relaxed alignment accepts a subdomain (mail.acme.com aligns with acme.com). Strict needs an exact match. Relaxed is the default and right for most domains.

The three policies

The policy only affects mail that fails DMARC. Move through the three in order, one step at a time, as reports confirm your own mail passes.

Nonep=none

Monitor while you collect reports

Delivered

Quarantinep=quarantine

Once your own mail passes

Spam folder

Rejectp=reject

Full protection

Blocked
The same failing message under each policy. Only none lets it through.

Reading DMARC reports

Aggregate reports (rua) arrive daily from each large mailbox provider as XML files. They list every server that sent mail as your domain, how many messages it sent, and whether they passed SPF, DKIM and alignment. Forensic reports (ruf) describe single failed messages, but few providers send them.

Report from google.com

Oct 16

Plunk

12,480 messages

Pass

Google Workspace

1,204 messages

Pass

Help desk

310 messages

Not aligned

192.0.2.44

58 messages

Fail
Each row is a source sending as your domain. Fix the ones you recognise before you enforce.

Reports can be large and frequent, so send them to a dedicated mailbox. Sources you recognise that fail need SPF or DKIM set up; sources you do not recognise are what your policy will block.

Why DMARC matters

  • Blocks spoofing

    At p=reject, forged mail in your name is refused outright.
  • Required by Google and Yahoo

    Bulk senders (5,000+ a day) need at least p=none since 2024.
  • Shows who sends as you

    Reports surface tools and servers you did not know about.
  • Improves deliverability

    An enforced policy is a strong trust signal for inboxes.

How to set up DMARC

  1. Make sure SPF and DKIM pass

    DMARC needs at least one of them working for every service that sends as you.
  2. Create a mailbox for reports

    For example dmarc@yourdomain.com. Keep it separate from your inbox.
  3. Publish a monitoring record

    Add a TXT record at _dmarc.yourdomain.com:
    v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; pct=100
  4. Watch reports for 2 to 4 weeks

    Find legitimate sources that fail and fix their SPF or DKIM.
  5. Tighten the policy

    Move to p=quarantine, monitor again, then to p=reject. Check each change with the DMARC checker.
    v=DMARC1; p=reject; rua=mailto:dmarc@yourdomain.com; pct=100

Keep reading

Frequently asked questions

Send email that passes DMARC.

Start on the free plan with 1,000 emails a month, no credit card needed. When you need more, every email is $0.001, with unlimited contacts and every feature included.