Alle 09:40, giovedì 19 aprile 2007, automatic_jack ha scritto: > configurato procmail per richiamare clamav
forse ho trovato il metodo che tu hai applicato, ed ho potuto constatare che le prestazioni sono migliorate in quanto posso applicare il controllo email alle sole email che ritengo opportuno, puoi confermarmi se utilizzi questo sistema: la seguente regola in .procmail # Controlla con clamfilter :0fw | /usr/local/bin/clamfilter.pl :0: * ^X-Virus-Found: yes ${MAILDIR}/Virus/ e il lo script che ho trovato faticosamente nella rete cat /usr/local/bin/clamfilter.pl #!/usr/bin/perl -w # # ClamFilter 1.0 # by Matt Hahnfeld (http://www.everysoft.com/) # Requires perl, clamscan, procmail, and this script. # # Add these lines to your .procmailrc: # # :0fw # | /usr/local/bin/clamfilter.pl # # This script is public domain. # use strict; use File::Temp 'tempfile'; &main(); exit 0; sub main { # Set up a temporary file for the original message my ($tmpfh, $tmpfn) = tempfile( UNLINK => 1 ); -w $tmpfn or die 'Could not open temp file!'; # Pass 1: Write out the temporary file while (<STDIN>) { print $tmpfh $_; } seek($tmpfh, 0, 0); # Pass 2: Scan the message open CLAMSCAN, "/bin/cat $tmpfn | /usr/bin/clamscan --stdout --recursive --mbox - 2>/dev/null |" or die 'Could not open clamscan!'; my $clamstatus = qq|X-Virus-Found: yes X-Virus-Status: ------------------------------------------------------------ Virus Scan Status: ------------------------------------------------------------ |; while (<CLAMSCAN>) { $clamstatus .= ' ' . $_; } close CLAMSCAN; $clamstatus .= qq| ------------------------------------------------------------ |; # Pass 3: Print out the message my $bodyflag = 0; while (<$tmpfh>) { if (! $bodyflag and $_ eq "\n") { if ($?) { print $clamstatus; } else { print "\n"; } $bodyflag = 1; } else { print; } } }