Why Generate a DMARC Record?
DMARC (Domain-based Message Authentication, Reporting and Conformance) is the protocol that completes SPF and DKIM to protect your domain against email spoofing and phishing. Without a DMARC policy, anyone can send emails impersonating your domain.
Three reasons to have DMARC:
- Brand protection → Prevent fraudsters from using your domain for phishing
- Complete visibility → Receive reports on who sends emails from your domain
- Better deliverability → Providers (Gmail, Microsoft) favor domains with DMARC
How to Use the Generator in 3 Steps
Step 1: Enter your domain
Enter your organizational domain exactly as it appears in your email addresses (e.g., captaindns.com). The tool automatically generates the full DNS name: _dmarc.captaindns.com.
Step 2: Configure options
Main policy (p): What to do with failing emails?
none: Monitor without blocking (recommended to start)quarantine: Send to spamreject: Block completely
Alignment (adkim, aspf): How to verify domain matching?
relaxed(r): Subdomains accepted (recommended)strict(s): Exact match required
Reports (rua, ruf): Where to receive statistics?
- Add
mailto:dmarc@yourdomain.comfor aggregate reports
Step 3: Copy and publish
The generator produces the complete DNS record. Copy it to your DNS management interface:
- Name:
_dmarc.yourdomain.com - Type: TXT
- Value: The generated record
What Exactly is DMARC?
DMARC is a DNS policy that tells mail servers:
- What to check: Does SPF or DKIM pass AND align with the visible domain?
- What to do on failure: Monitor (none), spam (quarantine), or block (reject)
- Where to report: Email addresses for receiving statistics
Example DMARC record:
_dmarc.captaindns.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@captaindns.com; adkim=r; aspf=r; pct=100"
Decoded:
v=DMARC1: Protocol version (required)p=quarantine: Policy = send to spamrua=mailto:...: Address for aggregate reportsadkim=r: DKIM alignment relaxedaspf=r: SPF alignment relaxedpct=100: Apply to 100% of emails
All DMARC Tags Explained
Required tags
| Tag | Values | Description |
|---|---|---|
| v | DMARC1 | Protocol version. Always DMARC1. |
| p | none / quarantine / reject | Policy for main domain. |
Common optional tags
| Tag | Values | Description |
|---|---|---|
| sp | none / quarantine / reject | Policy for subdomains. Inherits from p if absent. |
| rua | mailto:address | Addresses for aggregate reports (daily). |
| ruf | mailto:address | Addresses for forensic reports (per failure). |
| adkim | r (relaxed) / s (strict) | DKIM alignment mode. |
| aspf | r (relaxed) / s (strict) | SPF alignment mode. |
| pct | 1-100 | Percentage of emails subject to policy. |
Advanced tags
| Tag | Values | Description |
|---|---|---|
| fo | 0 / 1 / d / s | Forensic report generation options. |
| ri | seconds | Aggregate report interval (default 86400 = 24h). |
Practical use cases
Case 1: New domain with no history
Goal: Protect a domain that's starting to send emails.
Recommended configuration:
v=DMARC1; p=none; rua=mailto:dmarc@captaindns.com; adkim=r; aspf=r
Next steps:
- Monitor reports for 2-4 weeks
- Identify all legitimate sources
- Move to
p=quarantine; pct=25 - Gradually increase to
p=reject
Case 2: Domain with multiple services (CRM, newsletter, transactional)
Goal: Protect without breaking existing flows.
Initial configuration:
v=DMARC1; p=none; sp=none; rua=mailto:dmarc@captaindns.com; adkim=r; aspf=r
Diagnosis via RUA reports:
- List all IPs/domains sending
- Verify each source has SPF and DKIM configured
- Identify unauthorized sources (potential spoofing)
Gradual rollout:
v=DMARC1; p=quarantine; pct=10; rua=mailto:dmarc@captaindns.com
Then 25%, 50%, 100%, and finally p=reject.
Case 3: Domain that doesn't send emails
Goal: Prevent any fraudulent use of a "parked" domain.
Direct strict configuration:
v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s
No observation phase needed if the domain should never send legitimate emails.
Common mistakes to avoid
| Mistake | Problem | Solution |
|---|---|---|
| Two DMARC records | Conflict, policy ignored | One record per domain only |
| Forgetting mailto: | Reports not sent | rua=mailto:address@domain.com |
| Jumping straight to reject | Blocking legitimate emails | Start with p=none, then quarantine |
| Ignoring reports | No visibility on issues | Analyze RUA weekly |
| Strict alignment too early | Failures if subdomains or third-party services | Keep r (relaxed) until complete inventory |
Deployment best practices
Phase 1: Observation (2-4 weeks)
v=DMARC1; p=none; rua=mailto:dmarc@captaindns.com
- Collect reports
- Identify all legitimate sources
- Fix SPF/DKIM for non-aligned sources
Phase 2: Gradual quarantine
v=DMARC1; p=quarantine; pct=10; rua=mailto:dmarc@captaindns.com
- Increase from 10% → 25% → 50% → 100%
- Monitor user complaints
- Adjust if needed
Phase 3: Reject
v=DMARC1; p=reject; rua=mailto:dmarc@captaindns.com; adkim=r; aspf=r
- Maximum protection
- Optionally move to strict alignment (
adkim=s; aspf=s)
FAQ - Frequently asked questions
Q: What is a DMARC record?
A: DMARC (Domain-based Message Authentication, Reporting and Conformance) is a DNS TXT record that tells mail servers how to handle emails that fail SPF and DKIM checks. It protects your domain against spoofing and phishing.
Q: What DMARC policy should I start with?
A: Always start with p=none. This policy doesn't impact delivery but sends you reports. Analyze these reports for 2-4 weeks to identify all legitimate flows before moving to quarantine then reject.
Q: What's the difference between RUA and RUF?
A:
- RUA (Reporting URI for Aggregate): Daily aggregate reports with global statistics
- RUF (Reporting URI for Forensic): Detailed reports per individual failure
RUA is essential and supported by all. RUF is optional and rarely supported by providers.
Q: How does DMARC alignment work?
A: Alignment checks that the visible domain (From:) matches the domain authenticated by SPF or DKIM:
- Relaxed (r):
mail.captaindns.comaligns withcaptaindns.com - Strict (s): Exact match required
Q: Can I have multiple DMARC records?
A: No. Only one DMARC record is allowed per domain. Multiple records cause errors. Edit the existing one rather than adding new.
Q: How long before DMARC is active?
A: The record is active once DNS propagates (minutes to 48h). First RUA reports arrive within 24-48h after emails are sent from your domain.
Q: How do I receive reports for an external domain?
A: If your RUA address is on another domain, that domain must authorize you with:
yourdomain._report._dmarc.report-domain.com TXT "v=DMARC1"
Prepare for DMARCbis
DMARCbis is the upcoming IETF Proposed Standard that replaces RFC 7489. It introduces new tags (np, t, psd), removes deprecated tags (pct, rf, ri), and replaces the Public Suffix List with a DNS tree walk algorithm. Check your domain's readiness with the DMARCbis Checker or generate a compliant record with the DMARCbis Migration Tool.
Complementary tools
| Tool | Purpose |
|---|---|
| DMARC Record Check | Verify your existing DMARC record |
| DMARC Report Analyzer | Analyze DMARC aggregate reports received by email |
| DMARC Monitoring | Automated, ongoing DMARC monitoring for your domains |
| SPF Generator | Create a valid SPF record |
| DKIM Generator | Create your DKIM keys (RSA/Ed25519) |
| DKIM Record Check | Verify your DKIM signature |
| Mail Tester | Test your email deliverability |
| Phishing URL Checker | Check if a URL is used in phishing campaigns |
Useful resources
- RFC 7489 - DMARC (official specification)
- Google - Set up DMARC (Gmail/Workspace guide)
- Microsoft - DMARC in Microsoft 365 (Microsoft guide)
- DMARC.org (official project site)