[Mimedefang] Re: how to undo Verisigns mess
David F. Skoll
dfs at roaringpenguin.com
Tue Sep 16 11:11:01 EDT 2003
On Tue, 16 Sep 2003, Jeremy Mates wrote:
> Example Perl code can be found for Sendmail::Milter; should not be too
> hard to port to MIMEDefang:
Here's my attempt (not a port, a ground-up implementation.)
It uses a regexp on Verisign's hostname, which should be more resistant
to IP address changes.
--
David.
# Reject mail from domains that resolve to Verisign's fake address
# In your filter_sender, use:
# sub filter_sender {
# my($sender, $junk) = @_;
# if (from_nonexistent_domain($sender)) {
# return('REJECT', "Domain of $sender does not exist.");
# }
# return('CONTINUE', "OK");
# }
use Socket;
$VerisignFakePattern = "sitefinder.*\.verisign\.com";
sub canonicalize_email ($) {
my ($email) = @_;
$email =~ s/^<//;
$email =~ s/>$//;
return lc($email);
}
sub get_domain ($) {
my ($email) = @_;
$email = canonicalize_email($email);
$email =~ s/.*\@//;
return $email;
}
sub is_unreal_domain ($) {
my($dom) = @_;
my($name, $addr);
$addr = gethostbyname($dom);
return 0 unless defined($addr);
$name = gethostbyaddr($addr, &AF_INET);
return 0 unless defined($name);
return ($name =~ /$VerisignFakePattern/);
}
sub from_nonexistent_domain ($) {
my($sender) = @_;
return is_unreal_domain(get_domain($sender));
}
More information about the MIMEDefang
mailing list