All pastes #715453 Raw Edit

Something

public text v1 · immutable
#715453 ·published 2007-09-26 10:05 UTC
rendered paste body
package 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");