Hi Holger,
ich war jetzt ein paar Tage unterwegs daher antworte ich erst jetzt wieder.
Zum Skript:
Ich habe das Skript benutzt, dass du wahrscheinlich auch benutzt nur mit dem Unterschied, dass bei mir die Spam E-Mails nicht gelöscht, sondern in den Ordner LearnedAsSpam verschoben werden sollen.
Daher sieht mein Skript so aus:
#!/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);
my $move = `su - $key -c "mv $filetolearn $MailDir/.LearnedAsSpam/cur"`;
# printf("Result of delete: %s\n",$delete);
}
}
}
Die Änderung habe ich auch hier im Forum entnommen. Wie gesagt ich glaube, dass folgende Zeile der Grund sein könnte, aber ich hab etwas schiss, dass ich da was kaputt machen könnte.
my $move = `su - $key -c "mv $filetolearn $MailDir/.LearnedAsSpam/cur"`;
Oder denkst du, dass ich das mal riskieren soll? Oder kann es das eventuell gar nicht sein und ich such an der falschen Stelle?