As any mail administrator will know SPAM is rampant on the Internet. I’ve work in organizations where over 95% of all mail received at the perimeter is dropped as SPAM mail…
In previous blogs we have looked at the Sender Protection Framework (SPF) and DomainKey Identified Mail (DKIM). Now it is time to look at how we can extend on that and suggest to the receiving mail server what we’d like it to do when SPF and/or DKIM checks fail.
ADSP is a fancy name for a DNS TXT record that says what should a receiving server do if DKIM checks fail. The format of the DNS record is very straight forward there is just one tag/value pair as shown below
_adsp._domainkey.<email domain> TXT dkim=discardable
This would tell the receiving server to discard all mail that isn’t DKIM signed, or where DKIM checks fail. Other values for dkim= are
As you can see there isn’t much to ADSP and it also doesn’t give you too many options. ADSP has been marked as a historic standard now, and you’re really better of to look toward DMARC.
DMARC is a much more complete standard and gives you loads of options when configuring this policy. It is still a DNS TXT record (or set of records in the more complex cases). The official standard is RFC 7489
Summarizing the most pertinent parts of a DMARC record:
_dmarc.<email domain> TXT v=DMARC1;p=quarantine
Some examples for example.com
Reject all mail that fails either DKIM or SPF
_dmarc.example.com TXT v=DMARC1;p=reject;
Reject all mail that fails either DKIM or SPF and enforce a strict match on domains
_dmarc.example.com TXT v=DMARC1;adkim=s;aspf=s;p=reject;
Pass all mail but send failure reports to an example.com address, limit aggregated reports to 50MB
_dmarc.example.com TXT v=DMARC1;p=none;rua=mailto:dmarc-aggregated@example.com!50m;ruf=mailto:dmarc-auth@example.com;
Pass all mail but send failure reports to a contoso.com address, limit aggregated reports to 50MB
_dmarc.example.com TXT v=DMARC1;p=none;rua=mailto:dmarc-aggregated@contoso.com!50m;ruf=mailto:dmarc-auth@contoso.com;
example.com._report._dmarc.contoso.com TXT v=DMARC1
Notice how in this case we need a second DNS record to allow reports to be sent to a contoso.com address for an example.com DMARC policy
So as you can see DMARC is pretty powerful, however it is not yet widely used and we have seen issues when emails are auto-forwarded, e.g. Yahoo mail going to Office 365 and within Office 365 the recipient has set forwarding to their gmail account. The mail ends up in SPAM which is probably not the intention…