DMARC_VIEW_REPORTS(1)

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

πŸ’– DMARC_VIEW_REPORTS πŸ’–

okay bestie, gather round, because dmarc_view_reports is about to become your new obsession ✨ it's the Perl-powered little tool that dumps your whole DMARC data store straight onto your terminal, and it's giving main character energy because the freshest records show up first πŸ”₯


πŸ’… SYNOPSIS πŸ’…

dmarc_view_reports [ --option=value ]

Basically: it dumps the contents of the DMARC data store to your terminal. And the way it's set up? The most recent records are shown first, periodt. πŸ‘‘


πŸ” Search Options πŸ”

these are the fields you can filter/sort on, bestie β€” memorise them, they're the whole vibe:

  • rid β€” report ID (the internal database ID, iykyk)
  • author β€” report author (Yahoo! Inc, google.com, etc..)
  • from_dom β€” message sender domain
  • begin β€” epoch start time, so you only display messages after it
  • end β€” epoch end time, so you only display messages before it
  • disposition β€” DMARC disposition (none,quarantine,reject)
  • dkim β€” DKIM alignment result (pass/fail)
  • spf β€” SPF alignment result (pass/fail)
  • limit β€” limit the number of reports returned (defaults to 100 πŸ‘€)
  • sort β€” sort by: rid, author, from_domain, begin, end (append :asc or :desc)

The default sort is "rid:desc" β€” that's newest reports first, no cap 🧒. And if typing that feels like a lot, you can also just use --sort=newest or --sort=oldest. Slay.

Now for the ✨chaos magic✨: prefix a value with "!" to negate the match (i.e. exclude the matching records). This is supported for "author", "from_dom", "disposition", "dkim", and "spf". So for example, "--author=!google.com" will exclude reports authored by google.com. Iconic behaviour honestly.


🌸 Other Options 🌸

dmarc_view_reports [ --geoip --dns --help --verbose ]
  • geoip β€” do GeoIP lookups (heads up: it requires the free Maxmind GeoCityLitev6 database)
  • dns β€” do reverse DNS lookups and display hostnames
  • help β€” print this syntax guide
  • verbose β€” print additional debug info

✨ EXAMPLES ✨

Wanna see one specific report by its ID? Say less:

dmarc_view_reports --rid=560

Wanna search for all reports from google.com that failed DMARC alignment? This is the one:

dmarc_view_reports --author=google.com --dkim=fail --spf=fail
⚠️ Note that we don't use --disposition here. That would only tell us the result of applying DMARC policy, not necessarily if the messages failed DMARC alignment. So don't do that, bestie, it's a trap πŸ™ˆ

To exclude reports from google.com:

dmarc_view_reports --author=!google.com

To exclude rows with a specific disposition:

dmarc_view_reports --disposition=!none

To show only the newest 50 reports:

dmarc_view_reports --limit=50

To view oldest reports first (little time traveller moment πŸ¦‹):

dmarc_view_reports --sort=oldest

To display GeoIP lookup data for the source ip:

dmarc_view_reports --geoip

By default; city, country_code & continent_code are shown. You can optionally pass a comma delimited string to --geoip= with any of the following fields:

country_code country_code3 country_name region region_name city postal_code latitude longitude time_zone area_code continent_code metro_code

dmarc_view_reports --geoip=country_name,continent_code
dmarc_view_reports --geoip=continent_code,country_name # keep order
dmarc_view_reports --geoip=city,city,city              # repeat

(not the # keep order and # repeat comments β€” those are literally just telling you the order is kept and you can repeat a field. Cute, right? πŸŽ€)


πŸ“Š SAMPLE OUTPUT πŸ“Š

here's what it looks like when it eats, fr fr:

 ID  Author            Report-Start
  | -- Qty From                                         IP             Disposition DKIM SPF

 570  theartfarm.com   2013-05-20 09:40:50
  | --   1 simerson.net                                 75.126.200.152 quarantine  fail fail

 568  yeah.net         2013-05-21 09:00:00
  | --   1 tnpi.net                                     111.176.77.138 reject      fail fail

 565  google.com       2013-05-20 17:00:00
  | --  88 mesick.us                                    208.75.177.101 none        pass pass

 563  google.com       2013-05-20 17:00:00
  | --   1 lynboyer.com                                 2a00:1450:4010:c03::235 none pass fail  forwarded
  | --  12 lynboyer.com                                 208.75.177.101          none pass pass
  | --   1 lynboyer.com                                 209.85.217.174          none pass fail  forwarded

πŸ‘‘ AUTHORS πŸ‘‘

the legends behind this, give them their flowers πŸ’:

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

and that's the whole thing, bestie πŸ’œ this page is from perl v5.42.2, dated 2026-06-15, and it's filed under DMARC_VIEW_REPORTS(1) in the User Contributed Perl Documentation. go forth and read your reports, you absolute icon 🌈✨

πŸ“¦ where this page comes from