[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