NAME
Mail::Abuse::Incident - Parses a Mail::Abuse::Report to extract incidents
SYNOPSIS
package Mail::Abuse::Incident::MyIncident;
use Mail::Abuse::Incident;
use base 'Mail::Abuse::Incident';
sub ip { ... };
sub time { ... };
sub type { ... };
sub data { ... };
sub parse { ... }
package main;
use Mail::Abuse::Report;
my $i = new Mail::Abuse::Incident::MyIncident;
my $report = new Mail::Abuse::Report (incidents => [$i] );
DESCRIPTION
This class implements the reception of an abuse report and its conversion to a Mail::Abuse::Report
object.
An object must respond to all the methods in the synopsis, returning the required information about the incident (after it has been parsed).
The following items of information have been defined:
- ip
-
A
NetAddr::IP
object encoding the origin of the particular incident. - time
-
A timestamp of the incident, extracted from the report. It must be a a timestamp in the UTC timezone, for consistency.
- type
-
A string identifying the type of incident. Normally of the form spam/SpamCom or virus/Nimda, if such filters exist.
- data
-
Any additional data that the class might want to keep regarding the incident.
Although specific incident parsers are free to define further class methodsor information items.
The following functions are provided for the customization of the behavior of the class.
items()
-
Enumerates the defined information items that have been defined for this object. Essentially, returns a list of the accessor methods. The object is overloaded so that this method is invoked automatically when serialization is required. This means that
print $incident, "\n";
Will produce human-readable information.
serialize()
-
Produces a
print()
able representation of the Incident object, suitable for showing it to a human being. parse($report)
-
Pushes incidents into the given report, based on parsing of the text in the report itself.
It must return a list of objects of the same class, with the incident data (IP address, timestamp and other information) filled.
EXPORT
None by default.
HISTORY
LICENSE AND WARRANTY
This code and all accompanying software comes with NO WARRANTY. You use it at your own risk.
This code and all accompanying software can be used freely under the same terms as Perl itself.
AUTHOR
Luis E. Muñoz <luismunoz@cpan.org>
SEE ALSO
perl(1).
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 263:
Non-ASCII character seen before =encoding in 'Muñoz'. Assuming CP1252