Hello,

I have a question about a piece of quarantaine code in an Amavis config file. Please see below :

----------------------------------------------------------------
package Amavis::Custom;
use strict;

BEGIN {
   import Amavis::Conf qw(:platform :confvars c cr ca);
}

# invoked at child process creation time;
# return an object, or just undef when custom checks are not needed
sub new {
   my($class,$conn,$msginfo) = @_;
   my($self) = bless {}, $class;
   my($xspam) = $msginfo->get_header_field_body('X-Spam-Flag',0);
   my($cl_ip) = $msginfo->client_addr;
   my(@myisp) = qw( x.x.x.x/27 );

# Check if our isp is the mta
if ($cl_ip ne '' &&  Amavis::Lookup::IP::lookup_ip_acl($cl_ip,\@myisp)) {
     if ($xspam =~ /^[ \t]YES/) {
       $msginfo->add_contents_category(CC_SPAM,0);
       for my $r (@{$msginfo->per_recip_data}) {
       $r->add_contents_category(CC_SPAM,0);
       $r->bypass_spam_checks(1);
       # QUARANTINE CODE HERE ?????
       }
     }
# Our isp mta but no X-Spam-Flag
       for my $r (@{$msginfo->per_recip_data}) {
       $r->bypass_spam_checks(1);
}
}
   $self;  # returning an object activates further callbacks,
           # returning undef disables them
}
1;  # insure a defined return
-----------------------------------------

The reason i have this code is that we want to skip spamscanning by spamassassin if the mail comes from : x.x.x.x and/or has come from a trusted MTA, then don't do any spamscanning. But we want to quarantine those messages as well. So my question is, what is the right code for this ?

I am looking into the Amavis perl module but is very large.

Greetings, Richard.

Reply via email to