[Mimedefang] Still outbound messages are getting blocked by s pamassassin

alan premselaar alien at 12inch.com
Sat Jul 10 00:13:41 EDT 2004



Matthew.van.Eerde at hbinc.com wrote:
>>From: Jim McCullars [mailto:jim at info.uah.edu]
>>On Fri, 9 Jul 2004, Vivek Kumar wrote:
>>
>>
>>>Hi Matthew,
>>>
>>>I tried both the following syntax you suggested but I got 
>>
>>compliation
>>
>>>error.
>>
>>   How about just:
>>
>>   if ($hostip =~ /^191\.0\.(?:0|1)/) {
>>    return("ACCEPT_AND_NO_MORE_FILTERING","OK")
>>   }
> 
> 
> That would aslo match 191.0.12.38, for example.
> 
> This might work though:
>     if ($hostip =~ /^(?:191\.0\.(?:0|1)|127\.0\.0)\./) {
>      return("ACCEPT_AND_NO_MORE_FILTERING","OK")
>     }

I use a subroutine that allows me to be creative and/or easily expand my 
list of machines/networks that can send email unfiltered. The code had 
been posted to the list awhile back so i'm not going to take credit for 
writing it. I obviously modified it for my own use.

I personally don't use ACCEPT_AND_NO_MORE_FILTERING because I still 
force virus scans of outgoing mail, but i use these tests to bypass the 
SpamAssassin tests as necessary.

hope this helps,

alan


code follows:
-----------------------------------------------------------------

use Socket;

sub valid_local_network {

	my	($hostip) = @_;
         my      $addr   ='';
         my      $network_string = '';
         my      $mask_string = '';

         my      %exempt_subnets = (
                         '127.0.0.0','255.0.0.0',
                         '192.168.0.0','255.255.255.0', 

			'192.168.1.0','255.255.255.0',
                 );

         $addr = inet_aton $hostip;

         while ( ($network_string,$mask_string) = each %exempt_subnets) {
                 my $network = inet_aton $network_string;
                 my $mask = inet_aton $mask_string;

                 if ( ($addr & $mask) eq $network) { 
 

                         return 1; 
 

                 } 
 

         } 
 

 
 

         return 0; 
 

}


then in filter_relay you could have:

sub filter_relay ($$$) {
	my ($hostip, $hostname, $helo) = @_;

	if (valid_local_network($hostip)) {
		return('ACCEPT_AND_NO_MORE_FILTERING', "It's from us.");
	}

	# ... other relay tests here

	return('CONTINUE',"");
}



More information about the MIMEDefang mailing list