DMARC (Domain-based Message Authentication Reporting and Conformance) is a DNS record that builds on SPF and DKIM to define how mail servers should handle messages that fail authentication checks. It also provides reporting capabilities that help domain owners identify legitimate and malicious sources of email sent in their name.
DMARC Records
Something related closely to SPF and DKIM records is the DMARC record — Domain-based Message Authentication, Reporting and Conformance.
The way that email works is that we could be receiving messages from any source out there, claiming to be any domain, from any sender. SPF and DKIM allow a certain level of authenticity. When a message gets sent into this domain, it can check who sent this message with the SPF record, and what the message looks like. Does it add up? Is it really coming from the correct domain? And it does both of these using DNS.
But quite honestly, we end up getting a lot of email from a lot of different sources, and it doesn't always come just from the domain. For instance, maybe I sign up for some sort of cloud service, and so it could be sending emails on behalf of me. If this machine gets those emails, what is it to do with them? SPF and DKIM allow it to do some level of verification, but maybe that doesn't give it the full spectrum, the full information.
DMARC is a way to add certain features, certain capabilities, to both SPF and DKIM. DMARC is also a record that sits on DNS. What will happen is mail will be sent, and this checking server will then check, number one, SPF, and see if SPF checks out, and number two, the DKIM, and see if DKIM checks out. If something's wrong with those, it can then also check DMARC. Essentially DMARC says what you're going to do with that message if the SPF or DKIM fails.
There are more fields than just these, but we're going to cover a few of the basics.
One of them is the version. We call out that this is DMARC version 1.
Then also the policy. The P stands for policy. What is it going to do? There are three options here: none, quarantine, or reject. Reject just means reject the email. Quarantine means that we're going to treat it as being suspicious and flag it that it could be spam, or whatever the case may be. And none means no special treatment involved with this. So this is if it fails SPF or if it fails the DKIM, then it will follow through with one of these options.
Then the percent is the percentage that it treats as being under this policy. So right now we say reject. Well, what are we rejecting? 100%. If it fails, we're recommending that you get rid of 100% of them. But the problem with that is there could be email coming from sources we're not quite aware of yet, and what we need to do is track those down. So maybe we dial this back to 80%, because 80% is going to come from the systems that we know are sending out email on behalf of us. Then we can start tracking down what that last 20% is, so that we can move that over.
The other thing is maybe we want some feedback: when something gets denied, we want to hear about it so we can track those down and figure out where it's coming from. So we could ask for an aggregated report — and there are other types of reports we could ask for as well — and we can specify how we're going to receive those aggregated reports, so we can really understand where our mail is coming from, who's trying to spoof us, and who are other systems that we have hanging out there that are sending mail on behalf of us.
Just to see what an example of this might look like, I'm at the MX Toolbox website and I'm looking at thef.org for DMARC. I did a lookup on it, and what we can see is that it's using version DMARC 1, the policy is none, and it's requesting an aggregate report being sent to these emails.
TechKnowSurge builds IT and cybersecurity professionals through hands-on, concept-first training built around real understanding — not memorization. Free interactive tools, structured programs, and 25+ years of real-world experience, all in one place.
Explore free tools and programs →