NAME

Mail::DMARC::Report::Send::SMTP - utility methods for sending reports via SMTP

VERSION

version 2.20261030

SUBJECT FIELD

The RFC5322.Subject field for individual report submissions MUST conform to the following ABNF (RFC 9990 3.5.2):

dmarc-subject = %s"Report" 1*FWS %s"Domain:"
                1*FWS domain-name 1*FWS         ; policy domain
                %s"Submitter:" 1*FWS
                domain-name 1*FWS               ; report generator
                [ %s"Report-ID:" 1*FWS ridtxt ]

ridfmt = (dot-atom-text ["@" dot-atom-text])  ; from RFC 5322
ridtxt = ("<" ridfmt ">") / ridfmt

The first domain-name indicates the DNS domain name about which the report was generated. The second domain-name indicates the DNS domain name representing the Mail Receiver generating the report. The purpose of the Report-ID: portion of the field is to enable the Domain Owner to identify and ignore duplicate reports that might be sent by a Mail Receiver.

12.2.1 Email

In the case of a "mailto" URI, the Mail Receiver SHOULD communicate reports using the method described in [STARTTLS].

The message generated by the Mail Receiver must be a [MIME] formatted [MAIL] message. The aggregate report itself MUST be included in one of the parts of the message. A human-readable portion MAY be included as a MIME part (such as a text/plain part).

The aggregate data MUST be an XML file subjected to GZIP compression. The aggregate data MUST be present using the media type "application/ gzip", and the filenames SHOULD be constructed using the following ABNF:

  filename = receiver "!" policy-domain "!" begin-timestamp "!"
             end-timestamp [ "!" unique-id ] "." extension

  unique-id = token
           ; "token" is imported from [MIME]

  receiver = domain
           ; imported from [MAIL]

  policy-domain = domain

  begin-timestamp = 1*DIGIT
                  ; seconds since 00:00:00 UTC January 1, 1970
                  ; indicating start of the time range contained
                  ; in the report

  end-timestamp = 1*DIGIT
                ; seconds since 00:00:00 UTC January 1, 1970
                ; indicating end of the time range contained
                ; in the report

  extension = "xml" / "gzip"

For the GZIP file itself, the extension MUST be "gz"; for the XML
report, the extension MUST be "xml".

AUTHORS

  • Matt Simerson <msimerson@cpan.org>

  • Davide Migliavacca <shari@cpan.org>

  • Marc Bradshaw <marc@marcbradshaw.net>

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.