Hi - I successfully installed ClamAV on my Shell Account (I am on a shared server and don't have privileges to integrate ClamAV in qmail or sendmail or therelike).
So ... I want to call clamscan via procmail and basically it works (someone on the NG of the hosting provider put it up there), but *if* a mail contains a virus, this procmail rule starts looping indefinitely. Somewhere is a flaw. I am posting the relevant section of my procmail-rule and the procmail logfile. Maybe someone can tell me what the problem is and how to fix it. Also, I would like to change the procmail rule to not discarding the mail, i.e., not putting it to /dev/null, but to keeping a copy in a special folder (do I need to change the EXITCODE for this purpose). Moreover, is there a way of not having to put any incoming mail in this file, "preprocess" in my configuration? If anyone has a working procmail rule, please, share it with me or point me to a site where this is explained. So, here is my procmail rule: ---BOF--- ## ANTIVIRUS SCANNER SHELL = /usr/local/bin/ksh LOG="ANTIVIRUS$EOL" MAILDIR=$HOME/mail/incoming ADMIN = [EMAIL PROTECTED] BACKUPDIR = $HOME/mail/backup/antivirus/preprocess VIRUSDIR = $HOME/mail/backup/antivirus/viruses CLAM = /usr/home/hiebaum/bin/antivirus/clamav-0.54 CLAMDB = $CLAM/database CLAMTMP = "--tempdir $BACKUPDIR" CLAMOPT = "--stdout --infected --disable-summary --unzip --tgz --mbox - " VIRUS_SCAN = "$CLAM/clamscan/clamscan -d $CLAMDB $CLAMTMP $CLAMOPT" :0 c $BACKUPDIR CURRENT_MESSAGE = $LASTFOLDER #------------------------------------------------------------------ # VIRUS CHECK #------------------------------------------------------------------ :0 f * VIRUS_SCAN ?? ^^^^ | formail -A"X-Virus: Virus Scan unavailable" :0 E { DUMMY=`$VIRUS_SCAN < $CURRENT_MESSAGE | cut -f2 -d " "` :0 f * DUMMY ?? ^^^^ | formail -A"X-Virus: Virus Scan Complete: Message OK" :0 E { :0 f | formail -A"X-Virus: Virus Found: ($DUMMY)" :0 c $VIRUSDIR ORIGINAL = $LASTFOLDER # Send a note to the administrator about the virus that was found... :0 hcw * ! ADMIN ?? ^^^^ | ( echo "To: $ADMIN" ; \ echo "Subject: Virus detected in mail sent to your domain" ; \ echo "The mail has been quarantined; it is stored at: " ; \ echo " $ORIGINAL" ; \ echo "The headers of the mail are as follows:" ; \ echo "------------------------------------------------->>>" ; \ cat - ) | /usr/sbin/sendmail -t EXITCODE = 99 :0 /dev/null } } ---EOF--- ... and the log: ---BOF--- procmail: Assigning "[EMAIL PROTECTED]" procmail: Assigning"BACKUPDIR=/usr/home/hiebaum/mail/backup/antivirus/preprocess" procmail: Assigning "VIRUSDIR=/usr/home/hiebaum/mail/backup/antivirus/viruses" procmail: Assigning "CLAM=/usr/home/hiebaum/bin/antivirus/clamav-0.54/" procmail: Assigning "CLAMDB=/usr/home/hiebaum/bin/antivirus/clamav-0.54//database" procmail: Assigning "CLAMTMP=--tempdir /usr/home/hiebaum/mail/backup/antivirus/preprocess" procmail: Assigning "CLAMOPT=--stdout --infected --disable-summary --unzip --tgz --mbox - " procmail: Assigning "VIRUS_SCAN=/usr/home/hiebaum/bin/antivirus/clamav-0.54//clamscan/clamsca$ procmail: Assigning "LASTFOLDER=/usr/home/hiebaum/mail/backup/antivirus/preprocess" procmail: Opening "/usr/home/hiebaum/mail/backup/antivirus/preprocess" procmail: Acquiring kernel-lock procmail: Assigning "CURRENT_MESSAGE=/usr/home/hiebaum/mail/backup/antivirus/preprocess" procmail: No match on "^^^^" procmail: Executing "$VIRUS_SCAN < $CURRENT_MESSAGE | cut -f2 -d " "" procmail: Assigning "DUMMY=Can't" procmail: No match on "^^^^" procmail: Executing "formail,-AX-Virus: Virus Found: (Can't)" procmail: Assigning"LASTFOLDER=/usr/home/hiebaum/mail/backup/antivirus/viruses" procmail: Opening "/usr/home/hiebaum/mail/backup/antivirus/viruses" procmail: Acquiring kernel-lock procmail: Assigning "ORIGINAL=/usr/home/hiebaum/mail/backup/antivirus/viruses" procmail: Match on ! "^^^^" procmail: Executing " ( echo "To: $ADMIN" ; \ echo "Subject: Virus detected in mail sent to your domain" ;\ echo "The mail has been quarantined; it is stored at: " ;\ echo " $ORIGINAL" ;\ echo "The headers of the mail are as follows:" ;\ echo "------------------------------------------------->>>" ;\ cat - ) | /usr/sbin/sendmail -t" procmail: Assigning "LASTFOLDER= ( echo "To: $ADMIN" ; \ echo "Subject: Virus detected in mail sent to your domain" ;\ echo "The mail has been quarantined; it is stored at: " ;\ echo " $ORIGINAL" ;\ echo "The headers of the mail are as follows:" ;\ echo "------------------------------------------------->>>" ;\ cat - ) | /usr/sbin/sendmail -t" procmail: Assigning "EXITCODE=99" procmail: Assigning "LASTFOLDER=/dev/null" procmail: Opening "/dev/null" procmail: Notified comsat: "[EMAIL PROTECTED]:/dev/null" >>From [EMAIL PROTECTED] Sat Mar 22 14:12:50 2003 Subject: Forwarded mail.... Folder: /dev/null ---EOF--- Thanks in advance! -- CU, Niki *Draft beer, not people* --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]