p=none to p=quarantine or p=reject. Shortly after, automated receipts from an accounting portal, notifications from a staging server, or newsletters sent by a regional office stop arriving at their destinations. The root domain was thoroughly audited, but the policy silently cascaded down to every subdomain that nobody thought to check.
DMARC (Domain-based Message Authentication, Reporting, and Conformance) is designed to protect your brand identity by telling receiving mail servers what to do when a message claims to come from your domain but fails validation. However, the protocol specification is intentionally strict about inheritance. Unless you explicitly instruct receiving servers otherwise, your apex domain's enforcement policy applies to every single subdomain underneath it. If a department set up a marketing tool on newsletter.example.com five years ago without proper DKIM signatures, tightening example.com can shut that stream down overnight.
To help you roll out enforcement safely without breaking production communications, here is a prioritized checklist of checks and configurations to work through before and during your policy upgrade.
1. Audit your aggregate reports before changing policy values
rua) for at least several weeks. Many teams publish a root record and immediately assume everything is fine because they do not see bounce-backs, forgetting that p=none only monitors traffic without interfering with delivery.
Third-party sending platforms (such as helpdesk software, transactional notification providers, and CRM tools) often send emails using subdomains like support.example.com or mail.example.com. Reviewing aggregate data highlights every IP address and envelope domain sending on behalf of those subdomains, showing you which sources lack proper Sender Policy Framework (SPF) or DomainKeys Identified Mail (DKIM) alignment before any enforcement takes place.
2. Decouple subdomains using the explicit sp= tag
sp (subdomain policy) tag in your apex TXT record. If this tag is missing, mailbox providers automatically copy whatever value is defined in the primary p= tag down to every subdomain.
Setting sp=none allows you to lock down the apex domain with p=reject to protect executive and corporate mail while keeping subdomains in monitoring mode. This gives your infrastructure and marketing teams time to review their specific mail streams without facing immediate delivery failures.
TEXT
_dmarc.example.com. IN TXT "v=DMARC1; p=reject; sp=none; rua=mailto:[email protected];"@example.com will be rejected if they fail authentication, but messages originating from @sub.example.com will still pass through under the monitoring policy while generating diagnostic reports.
3. Verify SPF and DKIM alignment on active subdomains
alerts.example.com, receiving mail transfer agents (MTAs) check for an SPF record at alerts.example.com, not the root.
Furthermore, DMARC requires identifier alignment. It is not enough for an email to simply pass SPF or carry any valid DKIM signature; the domain in the visible From: header must match the domain validated by SPF (the Return-Path or envelope sender) or the domain specified in the DKIM d= signature tag. By default, DMARC uses relaxed alignment (aspf=r and adkim=r), meaning a signature from example.com can align with a From: address of mail.example.com. However, if your third-party vendor signs with their own operational domain (such as d=vendor-mail.net), DMARC alignment fails completely.
4. Publish dedicated DMARC records for known sending subdomains
_dmarc.app.example.com).
Receiving servers look for a DMARC policy by querying the exact host first before falling back to the organizational domain. When an explicit record exists at _dmarc.app.example.com, it completely overrides whatever policy or sp= tag is defined at _dmarc.example.com. This separation allows you to advance high-priority subdomains to p=reject individually as soon as their SPF and DKIM configurations are verified, rather than waiting for every legacy system across the entire organization to be updated.
5. Audit non-sending subdomains and protect against spoofing
v=spf1 -all) and an explicit DMARC record with p=reject. This prevents bad actors from crafting phishing attacks that appear to come from development or intranet domains while ensuring your administrative teams do not have to wonder whether unexpected traffic from those hosts is legitimate.
6. Monitor delivery behavior after each tag modification
sp=none to sp=quarantine or sp=reject, do so incrementally.
Keep a close eye on your aggregate reports and feedback from external communication partners for at least two weeks following any policy escalation. If legitimate mail starts getting quarantined or rejected due to a forgotten notification cron job or an unaligned SaaS provider, having granular records allows you to temporarily adjust the specific subdomain record back to p=none without weakening the defenses of your main domain.
Treating root and subdomain DMARC policies as separate architectural layers is the safest way to achieve full domain security. By explicitly defining the sp= tag on your apex record and deploying dedicated records for active sending subdomains, you protect your main corporate reputation without causing unexpected outages for the rest of your organization.