| =head1 WARNING |
| |
| This is a sample plugin, it may not work at all, so buyer beware. |
| |
| =cut |
| |
| package reporterplugin; |
| |
| use strict; |
| use bytes; |
| use Cwd; |
| |
| use Mail::SpamAssassin::Plugin; |
| |
| use vars qw(@ISA); |
| @ISA = qw(Mail::SpamAssassin::Plugin); |
| |
| sub new { |
| my $class = shift; |
| my $mailsaobject = shift; |
| |
| # some boilerplate... |
| $class = ref($class) || $class; |
| my $self = $class->SUPER::new($mailsaobject); |
| bless ($self, $class); |
| |
| return $self; |
| } |
| |
| sub plugin_report { |
| my ($self, $options) = @_; |
| |
| if (-e 'log/rptfail') { |
| $options->{report}->{report_available} = 0; |
| $options->{report}->{report_return} = 0; |
| } |
| else { |
| $options->{report}->{report_available} = 1; |
| $options->{report}->{report_return} = 1; |
| } |
| |
| return; |
| } |
| |
| sub plugin_revoke { |
| my ($self, $options) = @_; |
| |
| if (-e 'log/rptfail') { |
| $options->{revoke}->{revoke_available} = 0; |
| $options->{revoke}->{revoke_return} = 0; |
| } |
| else { |
| $options->{revoke}->{revoke_available} = 1; |
| $options->{revoke}->{revoke_return} = 1; |
| } |
| |
| return; |
| } |
| |
| 1; |