Engineering, made clearer.Find a tool /
Learn · Practise · Understand

Learn DMARC

DMARC passes when at least one validated SPF or DKIM identifier aligns with the RFC5322.From domain. It also publishes handling preferences and reporting destinations.

3 sections · 10 explained questions · About 10 minutesAll lessons →

Read each short explanation, work through the example, then answer a pop quiz. Every answer explains the reasoning. Incorrect answers unlock a fresh question on the same idea; the full lesson contains ten questions.

01Understand the basics

Ready to learn

Domain-based Message Authentication, Reporting, and Conformance (DMARC) connects the visible RFC5322.From domain with validated SPF and DKIM identifiers. DMARC passes when at least one authenticated identifier aligns. A DNS policy also requests handling for failures and can request reports.

Section 1 question · 4 variations
What is sufficient for a DMARC pass?

02Understand alignment

Ready to learn

Strict alignment requires identical domains. Relaxed alignment requires the same organisational domain, which current DMARC determines through DNS tree walking rather than a bundled public-suffix guess. SPF alignment uses the authenticated MAIL FROM domain; DKIM alignment uses a validated d= domain.

Try a different value

Move the slider or use the arrow keys to see what changes.
Monitor with p=noneCollect aggregate evidenceReceivers retain local handling discretion
Section 2 question · 3 variations
Which mode accepts different subdomains of the same organisational domain?

03Deploy from evidence

Ready to learn

Begin by collecting aggregate reports and finding every legitimate sender. Correct authentication and alignment before asking receivers to quarantine or reject failures. RFC 9989 replaced percentage rollout with t=y testing mode, which requests one policy level below the stated policy.

Section 3 question · 3 variations
What should happen before moving a domain to p=reject?

Put it to work

Apply what you’ve learned using the related tools.