Provided by: libmail-dmarc-perl_1.20230215-1_all bug

NAME

       Mail::DMARC::Report::Receive - process incoming DMARC reports

VERSION

       version 1.20230215

DESCRIPTION

       Receive DMARC reports and save them to the report store/database.

METHODS

   from_imap, from_file, from_mbox
       These methods are called by dmarc_receive program, which has its own documentation and
       usage instructions. The methods accept a message (or list of messages) and create an
       Email::Simple object from each, passing that object to from_email_simple.

   from_email_simple
       Accepts an Email::Simple message object. Returns the type of DMARC report detected or
       undef if no DMARC report was detected.

       When forensic reports are detected, no further processing is done.

       When an aggregate report is detected, the report details are extracted from the message
       body as well as the Subject field/header and attachment metadata.

       Parsing of the Subject and MIME metadata is necessary because the 2013 draft DMARC
       specification does not REQUIRE the envelope_to domain name to be included in the XML
       report. For example, the only way to know that the email which generated this particular
       report was sent to hotmail.com is to extract the envelope_to domain from the message
       metadata (Org Name=Microsoft, hotmail.com is not in the XML). So far, every messsage I
       have seen has had the envelope_to domain in one location or the other.

       To extract messages from the message body, the MIME attachments are decompressed and
       passed to handle_body.

   handle_body
       Accepts a XML message, parsing it with XML::LibXML and XPath expressions. The parsed data
       is stored in a Mail::DMARC::Report object. When the parsing is complete, the report object
       is saved to the report store.

AUTHORS

       •   Matt Simerson <msimerson@cpan.org>

       •   Davide Migliavacca <shari@cpan.org>

       •   Marc Bradshaw <marc@marcbradshaw.net>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2023 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.