#!/usr/bin/perl

use Mail::Sendmail;

$fileName = $ARGV[0];
$dirName = "$fileName.scan/";
$sender = $ARGV[1];
$rcpt = $ARGV[2];

mkdir($dirName, 0777);
system("/var/MailRoot/filters/reformime -x$dirName < $fileName");

$retCode = system("/usr/bin/uvscan $dirName/* > $fileName".".report");
$retCode /= 256;

system('rm', '-r', $dirName);

if ($retCode != 0) {

	open(IN, "$fileName".".report");
	@report = <IN>;
	close(IN);

	system('rm', "$fileName".".report");

	# Send an email
	$postmaster = 'postmaster@web4free.ch';
	$mail_host = 'mail.web4free.ch';
	
	%mail = ('Smtp'		=>	$mail_host,
		'To'		=>	$sender,
		'Cc'		=>	$rcpt,
		'Bcc'		=>	$postmaster,
		'From'		=>	$postmaster,
		'Date'		=>	Mail::Sendmail::time_to_date(time),
		'Subject'	=>	"Virus found" );
	
	$message  = <<END_OF_MESSAGE;

A message sent from / for you was detected to contain a virus.

Sender:       $sender
Recipient:    $rcpt

Please check your system and resend the message.

Thank you.


END_OF_MESSAGE

	$message .= "----- Report of virus scanner -----\n";
	$message .= (join "", @report);

	$mail{Body} = $message;

	if(!sendmail %mail) {
		print $Mail::Sendmail::error;
	}
	exit 99;
}

system('rm', "$fileName".".report");

exit 0;

