1=head1 testplugin2.pm 2 3To try this out, write these lines to /etc/mail/spamassassin/plugintest.cf: 4 5 loadplugin myTestPlugin 6 header MY_TEST_PLUGIN eval:check_test_plugin() 7 8=cut 9 10package myTestPlugin2; 11 12use Mail::SpamAssassin::Plugin; 13use Mail::SpamAssassin::Logger; 14use strict; 15use bytes; 16 17our @ISA = qw(Mail::SpamAssassin::Plugin); 18 19# constructor: register the eval rule 20sub new { 21 my $class = shift; 22 my $mailsaobject = shift; 23 24 # some boilerplate... 25 $class = ref($class) || $class; 26 my $self = $class->SUPER::new($mailsaobject); 27 bless ($self, $class); 28 29 $self->register_method_priority('extract_metadata', 200); 30 31 print "registered myTestPlugin2: $self\n"; 32 return $self; 33} 34 35sub extract_metadata { 36 my ($self, $opts) = @_; 37 my $msg = $opts->{msg}; 38 print "myTestPlugin2 extract_metadata: $self\n"; 39 40 # note: this has to run after myTestPlugin has run, via the magic 41 # of priorities, otherwise 'Plugin-Meta-Test2' will not contain 42 # 'bar2'. 43 44 if ($msg->get_metadata("Plugin-Meta-Test") =~ /bar/) { 45 $msg->put_metadata("Plugin-Meta-Test2", "bar2"); 46 } 47 return 1; 48} 49 501; 51