rendered paste bodypackage Bogofilter;
use strict;
use Mail::SpamAssassin;
use Mail::SpamAssassin::Plugin;
our @ISA = qw(Mail::SpamAssassin::Plugin);
sub new {
my ( $class, $mailsa ) = @_;
$class = ref($class) || $class;
my $self = $class->SUPER::new($mailsa);
bless( $self, $class );
$self->register_eval_rule("check_bogofilter");
return $self;
}
sub check_bogofilter {
my ( $self, $permsgstatus, $fulltext, $min, $max ) = @_;
my $isspam = 0;
my $header = "";
my $return = "";
Mail::SpamAssassin::Plugin::dbg("BOGOFILTER: lookin at the mail");
Mail::SpamAssassin::Plugin::dbg("BOGOFILTER: min: $min max: $max");
if ( ! exists $permsgstatus->{bogoscore} ) {
my $tmpfile = $permsgstatus->create_fulltext_tmpfile($fulltext);
Mail::SpamAssassin::dbg("BOGOFILTER: permsgstatus $permsgstatus");
my $to = $permsgstatus->get('Received');
$to =~ /for (\S+\@\S+);/;
my $received = $1;
$received = lc($received);
$received = $self->stripUser($received);
my $cmd = "bogofilter -d /var/lib/bogofilter/$received -v < $tmpfile";
$return = `$cmd`;
Mail::SpamAssassin::dbg("BOGOFILTER: ran $cmd for $received");
Mail::SpamAssassin::dbg("BOGOFILTER: returned $return");