# this plugin checks the badrcptto config (like badmailfrom for rcpt address) sub register { my ($self, $qp) = @_; $self->register_hook("rcpt", "check_for_badrcptto"); } sub check_for_badrcptto { my ($self, $transaction, $recipient) = @_; my @badrcptto = $self->qp->config("badrcptto") or return (DECLINED); return (DECLINED) unless $recipient->host && $recipient->user; my $host = lc $recipient->host; my $from = $recipient->user . '@' . $host; for my $bad (@badrcptto) { $bad =~ s/^\s*(\S+)/$1/; return (DENY, "mail to $bad not accepted here") if $bad eq $from; return (DENY, "mail to $bad not accepted here") if substr($bad,0,1) eq '@' && $bad eq "@$host"; } return (DECLINED); }