The CustomDeleteTag Plugin
This SpamAssassin plugin module allows users to specify, through a user preferences database, a value that will be added to the message header, for all messages, specifying what value/score it is safe to delete the message. Obviously, you need some other process that looks at this header and performs the action, since SpamAssassin only filters and does not delete.
Code
Add the following to your local.cf file:
loadplugin CustomDeleteTag CustomDeleteTag.pm ifplugin CustomDeleteTag custom_delete_score 9.5 add_header all Delete _CUSTOMDELETESCORE_ endif # CustomDeleteTag
CustomDeleteTag.pm:
=head1 NAME package CustomDeleteTag =head1 SYNOPSIS loadplugin CustomDeleteTag /path/to/CustomDeleteTag.pm custom_delete_score 9.5 add_header all Delete _CUSTOMDELETESCORE_ =head1 DESCRIPTION This SpamAssassin plugin module allows users to specify a value that will be added to the message header, for all messages, specifying what value/score it is safe to delete the message. Obviously, you need some other process that looks at this header and performs the action, since SpamAssassin only filters and does not delete. =cut package CustomDeleteTag; use Mail::SpamAssassin::Plugin; use strict; use bytes; use vars qw(@ISA); @ISA = qw(Mail::SpamAssassin::Plugin); sub new { my $class = shift; my $mailsaobject = shift; $class = ref($class) || $class; my $self = $class->SUPER::new($mailsaobject); bless ($self, $class); $self->set_config($mailsaobject->{conf}); return $self; } sub set_config { my ($self, $conf) = @_; my @cmds = (); push(@cmds, { setting => 'custom_delete_score', default => 1000, type => $Mail::SpamAssassin::Conf::CONF_TYPE_NUMERIC, }); $conf->{parser}->register_commands(\@cmds); } sub parsed_metadata { my ($self, $opts) = @_; $opts->{permsgstatus}->{tag_data}->{CUSTOMDELETESCORE} = $opts->{permsgstatus}->{conf}->{custom_delete_score}; } 1;
How To Use It
Add the above configuration to your local.cf file and watch for the custom delete header to start showing up in your mail messages.