=head1 NAME check_spamhelo - Check a HELO message delivered from a connecting host. =head1 DESCRIPTION Check a HELO message delivered from a connecting host. Reject any that appear in the badhelo config -- e.g. yahoo.com and aol.com, which neither the real Yahoo or the real AOL use, but which spammers use rather a lot. =head1 CONFIGURATION Add domains or hostnames to the F configuration file; one per line. =cut sub register { my ($self, $qp) = @_; $self->register_hook("helo", "check_helo"); $self->register_hook("ehlo", "check_helo"); } sub check_helo { my ($self, $transaction, $host) = @_; ($host = lc $host) or return DECLINED; for my $bad ($self->qp->config('badhelo')) { if ($host eq lc $bad) { $self->log(5, "Denying HELO from host claiming to be $bad"); return (DENY, "Uh-huh. You're $host, and I'm a boil on the bottom of the Marquess of Queensbury's great-aunt."); } } return DECLINED; }