Mail::DMARC::Report::Send::SMTP - utility methods for sending reports via SMTP
The RFC5322.Subject field for individual report submissions SHOULD conform to the following ABNF:
dmarc-subject = %x188.8.131.52f.72.74 1*FWS ; "Report" %x44.6f.6d.61.69.6e.3a 1*FWS ; "Domain:" domain-name 1*FWS ; from RFC6376 %x184.108.40.206d.220.127.116.11.72.3a ; "Submitter:" 1*FWS domain-name 1*FWS %x18.104.22.168f.72.74.2d.49.44.3a ; "Report-ID:" msg-id ; from RFC5322
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.
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".
This software is copyright (c) 2015 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.