super ! thanks

And what about if i just want to ban instead warn virus ?

Mark Martinec a écrit :
> David,
>
>   
>> I use Amavis::Custom in order to add my own plugin.
>> For testing i try to judge all mails received has infected
>> All mails came from Fetchmail so the connection is 127.0.0.1
>> i have removed 127.0.0.1 in @mynetworks attribute
>>
>> In This case, all mails are forwarded to recipients instead  being  refused
>>
>> the log is :
>> Dec 27 02:45:08 pc-touzeau amavis[10833]: (10833) Passed INFECTED (),
>> AM.PDP-SOCK [127.0.0.1] [127.0.0.1] <[email protected]> ->
>> <[email protected]>, Queue-ID: E232E9187B9, Message-ID:
>> <[email protected]>, mail_id: pV0TcxUGCNls, Hits: 0.632, size:
>> 1320, 1542 ms
>>     
>
>
>   
>> package Amavis::Custom;
>> use strict;
>>
>> BEGIN {
>>   import Amavis::Conf qw(:platform :confvars c cr ca $myhostname);
>>   import Amavis::Util qw(do_log untaint safe_encode safe_decode);
>>   import Amavis::rfc2821_2822_Tools;
>>   import Amavis::Notify qw(build_mime_entity);
>> }
>>
>>
>> sub new {
>>   my($class,$conn,$msginfo) = @_;
>>   bless {}, $class;
>> }
>>
>> sub before_send {
>>   my($self,$conn,$msginfo) = @_;
>>   my($client_ip) = $msginfo->client_addr;
>>   my($sender_address)=$msginfo->sender;
>>   my($log_id)=$msginfo->log_id;
>>   my($tempdir) = $msginfo->mail_tempdir;
>>   $msginfo->header_edits->add_header('X-Artica-scanner','artica');
>>
>>
>> do_log(0, "artica-plugin: client's IP [%s], sender: %s, tempdir:
>> %s",$client_ip, $sender_address,$tempdir);
>>
>> #Adding banned/VIRUSES for all mail
>>   $msginfo->add_contents_category(CC_BANNED,1);
>>   $msginfo->add_contents_category(CC_VIRUS,0);
>>
>>
>>   my($infected) = $msginfo->is_in_contents_category(CC_VIRUS);
>>   my($banned)   = $msginfo->is_in_contents_category(CC_BANNED);
>>   my($at_tag2)  = $msginfo->is_in_contents_category(CC_SPAMMY);
>>   my($at_kill)  = $msginfo->is_in_contents_category(CC_SPAM);
>>
>>   do_log(0, "artica-plugins: infected:%s, banned:%s, spammy:%s,
>> spam:%s",$infected, $banned, $at_tag2, $at_kill);
>>
>> $self;
>> };
>>
>> 1;  # insure a defined return
>>     
>
>
> Two problems there:
>
> - before_send hook comes too late, decisions have already been made;
>   setting of contents_category needs to go into an earlier custom
>   hook, the most appropriate is a sub checks (and sub new is good too).
>
> - you only flagged the message as a whole with CC_VIRUS, but not
>   each recipient's ccat - which take into account also individual
>   recipients 'bypass' settings. What happened here is that even though
>   a message was flagged as infected, the recipients behaved as if
>   virus scanning was bypassed for them (turning bling eye to the
>   virus scanning results), so the message was delivered.
>
>   Also, the name of a detected virus was not supplied, which
>   would leave a message without a X-Amavis-Alert header field
>   (if delivered to virus lovers).
>
>   Try this:
>
> sub checks {
>   my($self,$conn,$msginfo) = @_;
>   for my $r (@{$msginfo->per_recip_data}) {
>     $r->add_contents_category(CC_VIRUS,0)  if !$r->bypass_virus_checks;
>   }
>   $msginfo->add_contents_category(CC_VIRUS,0);
>   $msginfo->virusnames(['my-virus-name1', 'my-virus-name2']);
> }
>
>
> Mark
>
> ------------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It is the best place to buy or sell services for
> just about anything Open Source.
> http://p.sf.net/sfu/Xq1LFB
> _______________________________________________
> AMaViS-user mailing list
> [email protected] 
> https://lists.sourceforge.net/lists/listinfo/amavis-user 
>  AMaViS-FAQ:http://www.amavis.org/amavis-faq.php3 
>  AMaViS-HowTos:http://www.amavis.org/howto/ 
>
>   

-- 
David Touzeau -------------------------- Linux Ubuntu 7.04 feisty 
FreePascal-Lazarus,perl,delphi,php artica for postfix management console 
(http://www.artica.fr) icq:160018849


------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB
_______________________________________________
AMaViS-user mailing list
[email protected] 
https://lists.sourceforge.net/lists/listinfo/amavis-user 
 AMaViS-FAQ:http://www.amavis.org/amavis-faq.php3 
 AMaViS-HowTos:http://www.amavis.org/howto/ 

Reply via email to