You are currently not logged in! Enter your authentication credentials below to log in. You need to have cookies enabled to log in.
Plug-in Summary
Plug-in name: | spamtrap |
Info: | A spam trap |
Author: | tyskjohan |
Email: | Won't say |
Compatibility: | all |
Download: | here |
I just put this up quickly because someone asked a question related to this on the mailing list.
=head1 NAME spamtrap - handle spamtrap addresses =head1 DESCRIPTION xxx =head1 CONFIGURATION xxx =head1 AUTHOR Written by Johan Almqvist =cut use Mail::Address; sub register { my ($self, $qp, @args) = @_; if (@args > 0) { $self->{_spamtrap} = $args[0]; if (@args > 1) { $self->log(LOGWARN, "WARNING: Ignoring additional arguments."); } $self->register_hook("rcpt", "rcpt_handler"); $self->register_hook("data_post", "data_handler"); } else { $self->log(LOGWARN, "WARNING: No spamtrap address provided"); } } sub rcpt_handler { my ($self, $transaction, $rcpt) = @_; my $addr = lc $rcpt->address or return DECLINED; my $host = lc $rcpt->host or return DECLINED; my $user = lc $rcpt->user or return DECLINED; for my $h ($self->qp->config('spamtraps')) { next unless $h; $h = lc $h; if ($addr eq $h or $host eq $h) { $transaction->notes('whitelist', 1); $transaction->notes('denysoft_greylist', 0); $transaction->notes('spamtrap', 1); $self->log(2,"Recipient $addr is a spamtrap"); return (OK, 'User is a spam trap. May you burn in hell.'); } } DECLINED; } sub data_handler { my ($self, $transaction) = @_; my @spamtrap = Mail::Address->parse($self->{_spamtrap}); if ($transaction->notes('spamtrap')) { $transaction->recipients(@spamtrap); return OK; } return DECLINED; }