To install scandalo you can use the standard ./configure && make && make install To make it working, you need clamav daemon running and the clamdscan utility. Scandalo will tag your mail message with some headers, so you can easily verify if a mail message contains a virus. If clamd doesn't find any virus in your mail, the following headers are added by scandalo: X-Virus-Ret: 0 X-Virus-stream: OK When a virus is found by clamd, scandalo will add the following headers: X-Virus-Ret: 1 X-Virus-stream: Virus name (ex: X-Virus-stream: Eicar-Test-Signature FOUND) You can test that scandalo, clamd and clamdscan are working as expected running the following shell script: echo -e "From: \nTo: \nSubject: Testing scandalo\n\n"'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'"\n" | /usr/bin/scandalo If you have this one in stdout all is working: From: To: Subject: Testing scandalo X-Virus-Ret: 1 X-Virus-stream: Eicar-Test-Signature FOUND X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* You have now to integrate scandalo into your working mail system. For example, if you are using maildrop filter, you have to add something like this into your maildroprc file: VIRUSDIR="Virus" # Scan the mail message for viruses xfilter "/usr/bin/scandalo" if ((/^X-Virus-Ret: 1/) && (/^X-Virus-stream: !.*/)) { echo "Virus found: $MATCH2." `test -d ./Maildir/.$VIRUSDIR` # make sure .Virus folder exists if( $RETURNCODE == 1 ) { echo "Virus maildir does not exist" echo "Creating Maildir/.$VIRUSDIR " # This is used to create the virus maildir if it does not exists. DIRMAKE=`/usr/lib/courier/bin/maildirmake -f $VIRUSDIR ./Maildir` `echo "INBOX.$VIRUSDIR" >> ./Maildir/courierimapsubscribed` } to "./Maildir/.$VIRUSDIR/." } else { echo "Mail is virus clean" } Please let us know your feedback, your configuration, anything you think about it at info@tuxweb.it Dino Ciuffetti.