Email Deliverability
DMARC (Domain-based Message Authentication, Reporting, and Conformance) ties together SPF and DKIM to provide complete email authentication and reporting. Learn how to implement DMARC to protect your domain and monitor email delivery.
DMARC (Domain-based Message Authentication, Reporting, and Conformance) is the final piece of email authentication. It tells receiving servers what to do when SPF or DKIM checks fail, and provides you with reports about email authentication activity.
Think of it this way:
DMARC is no longer optional for serious email senders:
Before implementing DMARC, you must have:
Warning: Don't implement a strict DMARC policy without first having SPF and DKIM working correctly, or legitimate emails may be rejected.
A basic DMARC record looks like this:
v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com
Breaking it down:
v=DMARC1 - Version (always required)p=none - Policy (what to do with failed emails)rua=mailto:dmarc@yourdomain.com - Where to send aggregate reports_dmarc (not @, not blank)Note: The record name must be exactly _dmarc. If your DNS provider asks for a full domain, use _dmarc.yourdomain.com.
After 24-48 hours, you should start receiving DMARC aggregate reports. These XML files tell you:
DMARC has three policy levels:
p=none
Recommended for beginners. Emails are not rejected, but you receive reports. Use this to identify any legitimate sources that fail authentication before enforcing a stricter policy.
p=quarantine
Failed emails go to spam/junk folder. Good middle ground when you're confident in your authentication setup.
p=reject
Failed emails are rejected entirely. Only use this when you're 100% sure all legitimate email passes SPF/DKIM.
A more complete DMARC record might look like:
v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc@yourdomain.com; ruf=mailto:dmarc-forensic@yourdomain.com; sp=quarantine; adkim=r; aspf=r
Additional tags explained:
pct=100 - Apply policy to 100% of failed emails (default)ruf=mailto:... - Forensic reports (detailed failure info)sp=quarantine - Subdomain policyadkim=r - DKIM alignment mode (r=relaxed, s=strict)aspf=r - SPF alignment mode (r=relaxed, s=strict)For DMARC to pass, either SPF or DKIM must:
Relaxed alignment (default): Subdomains count (e.g., news.example.com aligns with example.com)
Strict alignment: Exact domain match required
When using ListMailer or other bulk email tools:
p=none to monitorp=quarantine then p=rejectDMARC reports are XML files sent daily to your reporting email address. They contain:
Use DMARC report analyzers like:
Your From: domain doesn't match the SPF/DKIM domain. Solution: Ensure you're sending from the correct domain or update alignment mode.
Check DNS record is correct, email address is valid, and you're actually sending/receiving email. Reports take 24-48 hours to start arriving.
A service sending on your behalf isn't in your SPF record or isn't signing with DKIM. Add them to SPF or configure DKIM for that service.
p=none and collect reportsp=quarantine and monitorp=rejectBasic monitoring:
v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com
Quarantine with percentage rollout:
v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@yourdomain.com
Full protection:
v=DMARC1; p=reject; rua=mailto:dmarc@yourdomain.com; ruf=mailto:dmarc-forensic@yourdomain.com
DMARC is the final piece of email authentication that ties together SPF and DKIM. Start with monitoring, fix any issues, then gradually enforce stricter policies. The result: better deliverability, protection from spoofing, and visibility into your email ecosystem.
Want to verify your email setup? ListMailer's deliverability testing tool automatically checks SPF, DKIM, and DMARC and gives you a detailed report with actionable recommendations. Test your email now →