From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

=head1 testplugin2.pm
To try this out, write these lines to /etc/mail/spamassassin/plugintest.cf:
loadplugin myTestPlugin
header MY_TEST_PLUGIN eval:check_test_plugin()
=cut
package myTestPlugin2;
use strict;
use bytes;
our @ISA = qw(Mail::SpamAssassin::Plugin);
# constructor: register the eval rule
sub new {
my $class = shift;
my $mailsaobject = shift;
# some boilerplate...
$class = ref($class) || $class;
my $self = $class->SUPER::new($mailsaobject);
bless ($self, $class);
$self->register_method_priority('extract_metadata', 200);
print "registered myTestPlugin2: $self\n";
return $self;
}
sub extract_metadata {
my ($self, $opts) = @_;
my $msg = $opts->{msg};
print "myTestPlugin2 extract_metadata: $self\n";
# note: this has to run after myTestPlugin has run, via the magic
# of priorities, otherwise 'Plugin-Meta-Test2' will not contain
# 'bar2'.
if ($msg->get_metadata("Plugin-Meta-Test") =~ /bar/) {
$msg->put_metadata("Plugin-Meta-Test2", "bar2");
}
return 1;
}
1;