DMARC policy at quarantine or reject in production
Why it matters
A DMARC record at p=none is monitoring mode only — it generates aggregate reports but does not instruct receiving mail servers to reject or quarantine spoofed email. Attackers can send phishing email appearing to come from your domain and it will land in inboxes unchallenged. RFC7489 requires p=quarantine or p=reject before DMARC provides any actual protection. Google's bulk sender guidelines for 2024 mandate DMARC enforcement for domains sending more than 5,000 messages per day; senders without enforcement face increasingly aggressive filtering at Gmail.
Severity rationale
Critical because `p=none` provides zero spoofing protection — your domain can be impersonated in phishing campaigns with no technical barrier, and Gmail's bulk sender requirements mandate enforcement-level DMARC for high-volume senders.
Remediation
Publish a DMARC record at _dmarc.yourdomain.com with p=quarantine or p=reject. Graduate from p=none only after reviewing aggregate reports to confirm SPF and DKIM are passing. Add programmatic validation to your health check or CI pipeline:
export async function validateDmarcRecord(sendingDomain: string): Promise<void> {
const records = await dns.resolveTxt(`_dmarc.${sendingDomain}`)
const rec = records.flat().find(r => r.startsWith('v=DMARC1'))
if (!rec) throw new Error(`No DMARC record at _dmarc.${sendingDomain}`)
if (rec.includes('p=none')) {
throw new Error(`DMARC for ${sendingDomain} is monitor-only — not enforcing`)
}
}
A production-ready record: v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@yourdomain.com; pct=100; adkim=s; aspf=s. Include both rua (aggregate) and ruf (forensic) reporting addresses and track these in infrastructure-as-code.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Deliverability Engineering Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- external · RFC7489 — DMARC — Domain-based Message Authentication, Reporting, and Conformance
- cwe · CWE-345 — Insufficient Verification of Data Authenticity
- iso-25010:2011 · reliability — ISO 25010 Reliability characteristic
Taxons
History
- 2026-04-18·v1.0.0·Initial import from deliverability-engineering·automated