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