DMARC TRAILING PARTS


Image credit: Jamie Lynn Lano
Puzzled about diversions DMARC imposes on mailing lists traffic? Check Wikipedia page on DMARC.

In short, when you see an address terminating that way, you should remove at least the trailing parts of that address:

John Doe <john.doe@example.org.REMOVE.THE.TRAILING.PARTS>
   ↓           ↓           ↓
John Doe <john.doe@example.org>

Those trailing parts were probably added to the From: header field in order to circumvent DMARC policy restrictions. If you don't know who John Doe is, or don't trust that the resulting address is good, just remove the entire recipient line from your reply.

Remember, it is always a good idea to check what recipients did your MUA deem appropriate for your reply.

For mailing list managers and other indirect mail flow operators

You are free to use domain names of the form REMOVE.*.TRAILING.PARTS to escape DMARC policies. Please do so only if necessary; that is, only if the domain publishes a strict policy. Perl (example given Mail::DMARC::opendmarc) or Python (e.g. gs.dmarc) are convenient script languages. In a (nut)shell, one would code:

#! /bin/sh
munge_domain()
{
	policy=$(dig +short "_dmarc.$1" txt |\
		sed -nr 's/^"v=DMARC1\\?;.*[ ;\\]p=([a-z]*)\\?;.*/\1/p')
	case "$policy" in
		quarantine|reject)
			munged="$(echo $1|tr '[:upper:]' '[:lower:]').REMOVE.THE.TRAILING.PARTS";;
		*)
			munged="$1";;
	esac
}

munge_domain yahoo.com
echo $munged

Should I fail to renew trailing.parts, that usage would become just like appending .INVALID; that is, subject to DMARC's idiosyncrasy of rejecting invalid domains.