DMARC_LOOKUP(1)

πŸ“¦
version 1.20260612 Β· 4 versions
, in fedora 43, fedora 44

πŸ’Œ DMARC_LOOKUP(1) β€” the manual page, but make it a group chat

okay bestie, so this is DMARC_LOOKUP(1), straight out of the User Contributed Perl Documentation section, and it's genuinely one of the most useful little tools ever. it looks up your DMARC policy. that's the vibe. let's go πŸ¦‹


✨ NAME ✨

dmarc_lookup β€” look up the DMARC policy for a domain. yes, that's literally it. she does one thing and she does it iconically πŸ’…


🌸 SYNOPSIS 🌸

dmarc_lookup example.com [ --verbose ]

that's the whole thing. domain in, vibes out. the --verbose is optional, iykyk.


πŸ’– DESCRIPTION πŸ’–

so what she actually does: she queries the DNS for a DMARC policy for a (sub)domain. any results she finds get displayed as the DNS record, as a perl object. very demure, very mindful. πŸŽ€

in the simplest case β€” where the domain name in the email From header matches the Organizational Domain β€” this is roughly equivalent to the following commands:

dig +short _dmarc.example.com TXT

print $_->txtdata."\n"
  for Net::DNS::Resolver->new(dnsrch=>0)->send('_dmarc.example.com','TXT')->answer;

but hold on, because there's a plot twist πŸ”₯ when the domain name in the email From header (that's header_from) is not an Organizational Domain (say, like www.example.com), she tries to figure out the O.D. using the Mozilla Public Suffix List. and when the O.D. differs from the header_from, she fires off a second DNS query to _dmarc.[O.D.]. two queries, one girl, no cap. πŸ’…


πŸŽ€ EXAMPLES πŸŽ€

a DMARC record in DNS format looks like this:

v=DMARC1; p=reject; adkim=s; aspf=s; rua=mailto:dmarc@example.com;
pct=100;

DMARC records are stored as TXT resource records in the DNS, at _dmarc.example.com. periodt. ✨

other ways to retrieve a DMARC record for a domain are:

πŸ™ˆ okay bestie, the original page just… ends the list right there. nothing after the colon. iconic honestly. we're leaving it exactly as it is.

πŸ‘‘ SEE ALSO πŸ‘‘

  • Mail::DMARC::Policy β€” go read her, she's the whole reason this works 🫢

πŸ’œ AUTHORS πŸ’œ

these legends, in this order:

  • Matt Simerson <msimerson@cpan.org>
  • Davide Migliavacca <shari@cpan.org>
  • Marc Bradshaw <marc@marcbradshaw.net>

and that's the whole page, bestie!! this version of the docs shipped with perl v5.42.2 and is dated 2026-06-15 β€” so like, go off, timestamp queen ⭐ take care of your DNS, hydrate, and may your p=reject always be valid. mwah. πŸ’–πŸŒˆπŸ§š

πŸ“¦ where this page comes from