I found the greylist implementation at http://lists.roaringpenguin.com/pipermail/mimedefang/2004-February/020126.html very useful, and I made a little change to support a greylist 'whitelist'. My intention is to not apply the greylist rules to local or trusted ip.
The white list is a BDB file with the same basic rules of the sendmail access file (compiled with makemap):
127.0.0.1 Localhost xx.xx.xx My network
I added the function greylist_whitelist:
$DBFilenameWL = "/etc/mail/greylistdb-whitelist.db";
sub greylist_whitelist($) {
my ($ip) = @_;
my $strip_ip = $ip;
my $result = 0;my %GDB;
if (tie(%GDB,'DB_File', $DBFilenameWL, O_RDONLY)) {
$strip_ip =~ s/(.*)\.[0-9]+$/$1/;
if ($GDB{$ip} || $GDB{$strip_ip}) {
$result = 1;
md_syslog('info', "greylist: $ip found in whitelist") if (defined($gdb_log) && $gdb_log);
} else {
md_syslog('info', "greylist: $ip not found in whitelist") if (defined($gdb_log) && $gdb_log);
}
untie %GDB;
}
return $result;
}
and in the filter_recipient function the first test become:
if ($greylist && !greylist_whitelist($ip)) {
.....
}--------------------------------------- Crashing is the only thing windows does quickly. --------------------------------------- Ing. Andrea Gabellini Email: [EMAIL PROTECTED] Tel: 0549 886111 (Italy) Tel. +378 0549 886111 (International)
Intelcom San Marino S.p.A. Strada degli Angariari, 3 47891 Rovereta Repubblic of San Marino
http://www.omniway.sm http://www.intelcom.sm
_______________________________________________ Visit http://www.mimedefang.org and http://www.canit.ca MIMEDefang mailing list [EMAIL PROTECTED] http://lists.roaringpenguin.com/mailman/listinfo/mimedefang

