Back to Deliverability Checker
Fix Guide

How to Fix DMARC Records

DMARC (Domain-based Message Authentication, Reporting & Conformance) tells receiving servers how to handle emails that fail SPF or DKIM checks. It's the final layer of email authentication that protects your domain from spoofing.

No DMARC Record Found

Without a DMARC record, receiving mail servers don't know how to handle emails that fail SPF or DKIM checks. Adding DMARC is essential for protecting your domain from being spoofed and improving deliverability.

How to add a DMARC record

DMARC is added as a TXT record at _dmarc.yourdomain.com. Here's how to add it:

Cloudflare

  1. Go to DNS → Records
  2. Click "Add record"
  3. Type: TXT, Name: _dmarc, Content: your DMARC record

Google Domains / Squarespace

  1. Go to DNS → Custom records
  2. Add a TXT record with host "_dmarc"
  3. Paste your DMARC record as the value

AWS Route 53

  1. Go to Hosted zones → your domain
  2. Create record with name "_dmarc"
  3. Record type: TXT, Value: your DMARC record

Recommended starter DMARC record

Start with monitoring mode to see reports without affecting delivery:

v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com
Important: Replace dmarc-reports@yourdomain.com with your actual email address. This is where you'll receive aggregate reports about your email authentication.

Policy Set to "none"

A DMARC policy of p=none is "monitoring only" mode. It tells receiving servers to send reports but take no action against emails that fail authentication. While this is a good starting point, it provides no protection against spoofing.

The DMARC rollout path

  1. 1
    p=none

    Monitor only. Collect reports to understand your email flow.

  2. 2
    p=quarantine

    Failed emails go to spam. Catches spoofing while allowing review.

  3. 3
    p=reject

    Failed emails are rejected outright. Maximum protection.

How to upgrade your policy

Before upgrading: Review your DMARC reports to ensure all legitimate email sources are properly authenticated with SPF and/or DKIM. Upgrading too quickly can cause legitimate emails to be blocked.

Step 1: Move to quarantine with gradual rollout

v=DMARC1; p=quarantine; pct=10; rua=mailto:dmarc-reports@yourdomain.com

This applies quarantine to only 10% of failing emails, letting you test safely.

Step 2: Increase percentage over time

v=DMARC1; p=quarantine; pct=50; rua=mailto:dmarc-reports@yourdomain.com

Step 3: Full quarantine

v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@yourdomain.com

Step 4: Move to reject (after monitoring)

v=DMARC1; p=reject; rua=mailto:dmarc-reports@yourdomain.com
Timeline suggestion: Spend at least 2-4 weeks at each stage monitoring reports before moving to the next level.

Policy Disabled (pct=0)

The pct=0 tag means your DMARC policy applies to 0% of emails—effectively disabling it. This is sometimes set accidentally or left over from testing.

With pct=0, your domain has no protection from spoofing even if you have a p=reject policy.

How to fix

Either remove the pct tag entirely (defaults to 100%) or set it to a meaningful value:

Before (disabled):

v=DMARC1; p=quarantine; pct=0; rua=mailto:dmarc@example.com

After (enabled):

v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com

Or use gradual rollout:

v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@example.com

No Aggregate Report Address

The rua tag specifies where to send aggregate DMARC reports. Without it, you won't receive visibility into who is sending email as your domain or how many emails are failing authentication.

How to add reporting

Add the rua tag to your DMARC record:

Before (no reporting):

v=DMARC1; p=quarantine

After (with reporting):

v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@yourdomain.com

Understanding DMARC reports

DMARC aggregate reports are XML files sent daily by receiving mail servers. They contain:

  • IP addresses sending email as your domain
  • SPF and DKIM pass/fail results
  • Number of emails from each source
  • Policy applied (none/quarantine/reject)
Tip: Raw DMARC reports are hard to read. Consider using a free service like Postmark DMARC or dmarcian to visualize and analyze your reports.

Multiple report addresses

You can send reports to multiple addresses:

v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com,mailto:dmarc@dmarcanalyzer.com
External addresses: If sending reports to a domain you don't control (like a DMARC analyzer), that domain must authorize receiving your reports by publishing a DNS record at yourdomain.com._report._dmarc.analyzerdomain.com.

DMARC Tag Reference

TagRequiredDescription
v=DMARC1YesVersion identifier (must be first)
p=YesPolicy: none, quarantine, or reject
rua=NoAggregate report email address
ruf=NoForensic report email address
pct=NoPercentage of emails to apply policy (default: 100)
sp=NoSubdomain policy (inherits from p= if not set)
adkim=NoDKIM alignment: r (relaxed) or s (strict)

Verify your changes

After making changes, use our checker to confirm everything is configured correctly.

Check Your Domain