#!/usr/bin/perl

#############################################################################
#
# This script has been developed
# by Jesper Knudsen at http://sme.swerts-knudsen.dk
#
# Revision History:
#
# January 18, 2006: Initial version
#############################################################################
#
# Each user needs ssh -  chsh -s /bin/bash <user> 
#
use Sys::Hostname;

use esmith::AccountsDB;

my $hostname = hostname();

my $adb = esmith::AccountsDB->open_ro()
or die "Couldnt' open AccountsDB\n";

my @users = $adb->users;

foreach my $user (@users)
{
my $firstname = $user->prop('FirstName');
my $lastname = $user->prop('LastName');
my $key = $user->key;

printf("Checking for user (%s): %s %s\n", $key,$firstname, $lastname);

$MailDir = "/home/e-smith/files/users/" . $key . "/Maildir";
opendir(LOGDIR, $MailDir);
my $dirname = sprintf "LearnAsSpam";
my @logdirs = sort grep { /$dirname/ } readdir(LOGDIR);
closedir(LOGDIR);

foreach my $logdir (@logdirs) {

my $SpamDir = $MailDir . "/" . $logdir . "/cur/";

# printf("Checking Dir: %s\n",$SpamDir);
opendir(SPAMDIR, $SpamDir);
my @spamfiles = sort grep { /$hostname/ } readdir(SPAMDIR);
closedir(SPAMDIR);

foreach $spamfile (@spamfiles) {
my $filetolearn = $Maildir . $SpamDir . $spamfile;

$filetolearn =~ s/;/\\;/g;
$filetolearn =~ s/:/\\:/g;

printf("Learning Spammail: %s\n",$filetolearn);
#my $result = `su - $key -c "/usr/bin/sa-learn --spam $filetolearn"`;
my $result = `su - root -c "/usr/bin/sa-learn --spam $filetolearn"`;
printf("Result of sa-learn: %s\n",$result);
# Now delete the file after learning
#my $delete = `su - $key -c "rm -f $filetolearn"`;
my $delete = `rm -f $filetolearn`; 
# printf("Result of delete: %s\n",$delete);
}
}
} 
