Mail::Abuse::Processor::Store module can process a Mail::Abuse::Report.
my $p = new Mail::Abuse::Processor::Store;
my $report = new Mail::Abuse::Report (processors => [ $p ]);
# ... other pieces of code that configure the report ...
This class stores a processed report in a file hierarchy that is composed using the smallest acceptable timestamp from the list of incidents in a report.
If no incidents are found within a report, a special name is built based on the report text.
The place where the files are created can be controlled with entries in the configuration file. Currently, the following directives are understood.
store root path
Points to the root of the tree where reports are to be stored. Defaults to the current directory.
store empty path
The name of the leaf where reports with no incidents are stored. This is a subdir of store root path. It defaults to the very creative name, "empty".
The mode in which to store abuse reports. The following modes are supported.
This is the default, and uses Storable to serialize the in-memory Mail::Abuse::Report object and store it in a flat file.
Just like serialized, but the resulting file is compressed with the equivalent of gzip, using PerlIO::gzip.
Store only the report text, as a flat file.
Just like plain but the resulting file is compressed on the fly using PerlIO::gzip.
If set to a true value, causes this module to emit debugging information using warn().
The following functions are implemented.
Takes a Mail::Abuse::Report object as an argument and performs the processing action required.
The processed $report will have the filename where the report was stored, added in store_file.