Mail::...:Result(3pm)
π NAME π
So bestie, welcome to Mail::DMARC::Result β the aggregate report result object. It's part of User Contributed Perl Documentation, and honestly it's giving main-character energy for DMARC results. π
π¦ VERSION π¦
version 1.20260306 β that's the version, no cap. β¨
π OVERVIEW π
Okay so picture this: a Result object is literally the product of instantiating a DMARC::PurePerl object, populating the variables, and running $dmarc->validate. That's the whole vibe. And the result object? It looks exactly like this, bestie:
result => 'pass', # pass, fail
disposition => 'none', # reject, quarantine, none
reason => [ # there can be many reasons...
{
type => '', # forwarded, sampled_out, trusted_forwarder,
comment => '', # mailing_list, local_policy, other
},
],
dkim => 'pass', # pass, fail
dkim_align => 'strict', # strict, relaxed
spf => 'pass', # pass, fail
spf_align => 'strict', # strict, relaxed
published => L<Mail::DMARC::Policy>,
A couple things to clock π₯: reasons are optional and may not be present. Also, the dkim_align and spf_align fields will only be present if the corresponding test value equals pass. They're extra little bonus info that the DMARC spec doesn't actually specify β like a lil garnish, iykyk. π
π METHODS π
π published
So published is a Mail::DMARC::Policy tagged with a domain. The domain attribute is the DNS domain name where the DMARC record was found. And bestie, this may not be the same as the header_from domain β for example bounces.amazon.com -vs- amazon.com. Two different girls, okurrr. πββοΈ
β¨ result
Whether the message passed the DMARC test. Possible values are: pass, fail.
In order to pass, at least one authentication alignment must pass. The 2013 draft defines two authentication methods: DKIM and SPF. The list is expected to grow β we're expanding, periodt. π±
π disposition
When the DMARC result is not pass, disposition is the results of applying DMARC policy to a message. Generally this is the same as the header_from domain's published DMARC policy. When it is not, the reason SHOULD be specified β lowercase "should" but bestie it's in caps, so you know it matters. π
π dkim
Whether the message passed or failed DKIM alignment. So to pass the DMARC DKIM alignment test, a DKIM signature that matches the RFC5322.From domain must be present. An unsigned message, a message with an invalid signature, or signatures that don't match the RFC5322.From field are all considered failures. literally all of them. π
πΈ dkim_align
If the message passed the DKIM alignment test, this tells you whether the alignment was strict or relaxed. Choose your fighter. π₯
π¦ spf
Whether the message passed or failed SPF alignment. To pass SPF alignment, the RFC5321.MailFrom domain must match the RFC5322.From field. That's the rule, bestie. π«Ά
β spf_align
If the message passed the SPF alignment test, this indicates whether the alignment was strict or relaxed. Same energy as dkim_align, different test. β¨
π reason
If the applied policy differs from the site's published policy, the result policy should contain a reason and optionally a comment.
A DMARC result reason has two attributes: type and comment. Behold:
reason => {
type => '',
comment => '',
},
type β the following reason types are defined and valid:
forwardedsampled_outtrusted_forwardermailing_listlocal_policyother
comment β a free form text field. Write whatever you want in there, it's your moment. βοΈ
π§ AUTHORS π§
- Matt Simerson
<msimerson@cpan.org> - Davide Migliavacca
<shari@cpan.org> - Marc Bradshaw
<marc@marcbradshaw.net>
Legends, all of them. π
π» COPYRIGHT AND LICENSE π»
This software is copyright (c) 2026 by Matt Simerson.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. Slay, open source. π
And that's the whole page, bestie β brought to you by perl v5.40.1, dated 2026-07-07, under the User Contributed Perl Documentation umbrella. Go forth and validate those messages. π¦π
β¨
π¦ where this page comes from
- ubuntu stonking: libmail-dmarc-perl 1.20260306-1ubuntu1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms