Manpage logo

Mailmunge::Test::SpamAssassin - run SpamAssassin against the current message.

NAME  ABSTRACT  SYNOPSIS  CLASS METHODS  Mailmunge::Test::SpamAssassin−>new($filter)  INSTANCE METHODS  spam_assassin_status($ctx, $local_tests_only, $config)  AUTHOR  LICENSE 

NAME

Mailmunge::Test::SpamAssassin − run SpamAssassin against the current message.

ABSTRACT

This class runs SpamAssassin against the message and returns the SpamAssassin "Mail::SpamAssassin::PerMsgStatus" object that is the result of the SpamAssassin run.

You must have "Mail::SpamAssassin" installed to use this class.

SYNOPSIS

package MyFilter;
use Mailmunge::Test::SpamAssassin;
sub filter_begin {
my ($self, $ctx) = @_;
my $test = Mailmunge::Test::SpamAssassin−>new($self);
my $status = $test−>spam_assassin_status($ctx);
if ($status) {
if ($status−>get_score() >= 5) {
$self−>action_change_header($ctx, 'Subject', '[SPAM] ' . $ctx−>subject);
}
$status−>finish();
}
# ... rest of filter_begin
}

CLASS METHODS

Mailmunge::Test::SpamAssassin−>new($filter)

Constructs a new Mailmunge::Test::SpamAssassin object and stores a copy of $filter in it.

INSTANCE METHODS

spam_assassin_status($ctx, $local_tests_only, $config)

Runs a SpamAssassin check against the current message. $local_tests_only is passed as the "local_tests_only" option to the "Mail::SpamAssassin" constructor. It is optional; if not supplied, it defaults to false.

$config is the path to the SpamAssassin "userprefs_fileanem". If not supplied, Mailmunge uses the first file found out of:

CONFDIR/sa−mailmunge.cf

CONFDIR/spamassassin/sa−mailmunge.cf

CONFDIR/spamassassin/local.cf

CONFDIR/spamassassin.cf

/etc/mail/sa−mailmunge.cf

/etc/mail/spamassassin/sa−mailmunge.cf

/etc/mail/spamassassin/local.cf

/etc/mail/spamassassin.cf

where CONFDIR is the value of "Mailmunge::Constants−>get('Path:CONFDIR')".

"spam_assassin_status" returns a "Mail::SpamAssassin::PerMsgStatus" object on success, or undef is something went wrong. Note that when you have finished using the returned status object, you should call its finish() method to free up resources.

AUTHOR

Dianne Skoll <[email protected]>

LICENSE

This code is licensed under the terms of the GNU General Public License, version 2.


Updated 2026-06-01 - jenkler.se | uex.se