/usr/local/CPAN/Mail-Miner/Mail/Miner/Recogniser/Spam.pm
#!/usr/bin/perl -w
package Mail::Miner::Recogniser::Spam;
use strict;
my $spamtest;
eval "use Mail::SpamAssassin";
unless ($@) {
$spamtest = Mail::SpamAssassin->new({local_tests_only => 1});
$Mail::Miner::recognisers{"".__PACKAGE__} =
{
title => "Spam",
help => "Tag a message with a spam score",
keyword => "spam", # Not that this is particularly useful
type => "=s",
nodisplay => 1,
};
}
sub process {
my ($class, %hash) = @_;
my $string = $hash{gethead}->()."\n".$hash{getbody}->();
if ($hash{gethead}->() =~ /X-Spam-Status: .*hits=(-?[\d\.]+)/) { return $1 }
my $spamscore = $spamtest->check_message_text($string);
my $score = $spamscore->get_hits;
$spamscore->finish;
return $score;
}
1;