Many businesses send email from more than one name: example.com for staff, news.example.com for a newsletter, billing.example.com for invoices. DMARC has a clear rule for which policy applies to each, and one tag, sp=, that controls most of it.
How a receiver finds the policy
For a message from news.example.com, a receiver following RFC 7489:
- Looks for a DMARC record at
_dmarc.news.example.com. If one exists, it uses that record'sp=. - If not, it looks at the organisational domain,
_dmarc.example.com, and applies itssp=policy, or itsp=if there is nosp=.
The organisational domain is the registrable domain, worked out from the public suffix list. Receivers do not walk up every level in between.
What sp= is for
_dmarc.example.com TXT "v=DMARC1; p=reject; sp=quarantine; rua=mailto:dmarc@example.com"Here the main domain is at reject, and subdomains without their own record get quarantine. Common reasons to set sp= differently from p=:
- The main domain is enforced but a subdomain's senders are still being fixed, so subdomains stay gentler for a while.
- The opposite: the main domain is still at
nonewhile you work through senders, but no subdomain sends email, sosp=rejectprotects them now.
When a subdomain needs its own record
Give a subdomain its own DMARC record when it needs a different policy or different reporting addresses. A subdomain's own record replaces the inherited one entirely, so include a rua tag if you still want reports.
_dmarc.news.example.com TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"Protect subdomains that never send email
Attackers like subdomains because they look legitimate: secure.example.com, billing.example.com. If the organisational domain's effective subdomain policy is reject, receivers apply it to every subdomain without its own record, including ones that do not exist in DNS. That is the simplest protection there is. For extra safety on names you do use for websites only, publish v=spf1 -all at those hostnames.
Common mistakes
- Assuming
p=rejectcovers subdomains whensp=noneis set. It does not. Check the whole record with the DMARC explainer. - A subdomain record with no
rua, so its traffic disappears from reports. - Forgetting that a subdomain's SPF and DKIM must align with the subdomain (relaxed alignment allows
example.comDKIM to align withnews.example.commail, but strict alignment does not).
How Hookgap reports subdomains
When you check a subdomain, Hookgap looks for its own DMARC record first, then falls back to the organisational domain's sp= policy, and says on the report that the policy is inherited. Email checks run on the subdomain only if it has its own mail servers; website and SSL checks always run on the exact host. More on how a check works.
Frequently asked questions
Do subdomains inherit the DMARC policy?
Yes. If a subdomain has no DMARC record of its own, receivers use the record of the organisational domain, applying its sp= policy, or its p= policy when there is no sp=.
When should a subdomain have its own DMARC record?
When it needs a different policy or different reporting, for example a marketing subdomain still at p=none while the main domain is at reject. A subdomain record overrides the inherited one completely.
Can attackers spoof subdomains that do not exist?
They can try. If the main domain's policy (sp= or p=) is reject, receivers apply it to any subdomain without its own record, including made-up ones.
Keep reading
DMARC p=none vs reject · 5 min read
DMARC p=none vs quarantine vs reject, in plain English
What each DMARC policy does to fake email, and a safe path from p=none to p=reject.
DMARC aggregate report explained · 7 min read
DMARC aggregate (rua) reports explained, with a worked example
A worked example of one report, what each field means, and how to use the reports to move a domain safely to p=reject.
Guide · 13 min read
SPF, DKIM and DMARC explained: the complete guide for MSPs
How the three email authentication records fit together, with real examples, alignment explained and a rollout plan that does not break mail.