You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by Apache Wiki <wi...@apache.org> on 2005/12/14 08:48:31 UTC

[Spamassassin Wiki] Update of "CustomDeleteTag" by MichaelParker

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Spamassassin Wiki" for change notification.

The following page has been changed by MichaelParker:
http://wiki.apache.org/spamassassin/CustomDeleteTag

New page:
= The CustomDeleteTag Plugin =

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.

== 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.

----
CategorySoftware