DMARC (Domain-based Message Authentication, Reporting & Conformance) is a policy telling recipients what to do with messages failing SPF/DKIM. Published as a _dmarc.example.com TXT record. Minimum: v=DMARC1; p=none; rua=mailto:dmarc@example.com. Standard rollout: p=none → 2 weeks of monitoring → quarantine → reject.
Below: step-by-step, working examples, common pitfalls, FAQ.
dmarc@example.com (or use a service like dmarcian.com)_dmarc, value v=DMARC1; p=none; rua=mailto:dmarc@example.comp=quarantine; pct=25 (25% of unauthenticated mail → spam)p=quarantine; pct=100, another week later: p=reject; pct=100| Scenario | Config / Record |
|---|---|
| Starter (monitoring) | v=DMARC1; p=none; rua=mailto:dmarc@example.com; fo=1 |
| Quarantine 25% | v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@example.com |
| Final (reject) | v=DMARC1; p=reject; pct=100; rua=mailto:dmarc@example.com; adkim=s; aspf=s |
| Subdomain policy | v=DMARC1; p=reject; sp=quarantine; rua=mailto:dmarc@example.com |
| Parked domain (sends no mail) | v=DMARC1; p=reject; sp=reject; aspf=s; adkim=s |
adkim=s (strict) requires exact d= match in DKIM. Relaxed (r) allows subdomainDKIM (DomainKeys Identified Mail) is a mechanism to digitally sign email with a key stored in DNS. This allows recipients to verify that the email was genuinely sent from the specified domain.
Specify domain and DKIM selector — get the public key and its parameters.
RSA/Ed25519 key length, hash algorithm, flags, and validity period.
If key < 2048 bits — we issue a warning and key rotation instructions.
Direct DNS query in seconds — no waiting for TTL.
pre-send verification
mail server setup
phishing protection audit
email deliverability debug
DKIM check history and DNS monitoring for domain record changes.
Sign up free<code>rua</code> — aggregate reports (daily stats from Gmail/Yandex). <code>ruf</code> — forensic reports (individual failed messages, optional). rua is enough for 99% of cases.
Yes. Even a parked domain (no mail) should have DMARC, otherwise an attacker can spoof your name in phishing.
It is XML. Services like dmarcian.com, dmarcanalyzer.com, postmaster.google.com parse and visualise it — free tiers are usually enough.
Minimum 2 weeks of p=none monitoring. Optimal: 4 weeks p=none → 2 weeks p=quarantine pct=25 → 2 weeks pct=100 → p=reject. About 2 months total.