diff -up smeserver-learn-1.0/root/usr/bin/Learn.pl.MOVE smeserver-learn-1.0/root/usr/bin/Learn.pl --- smeserver-learn-1.0/root/usr/bin/Learn.pl.MOVE 2016-03-16 11:20:03.245000000 -0400 +++ smeserver-learn-1.0/root/usr/bin/Learn.pl 2016-03-16 11:27:32.880000000 -0400 @@ -43,6 +43,7 @@ my $agesecs=60*60*24*$DelayToMove; my $daysago=time-$agesecs; #the time stamp of $agedays ago in seconds my $daysago2=localtime($daysago); #the time stamp of $agedays ago in words - mainly for printing my $SpamLinks = $sadb->get_prop("LearnAsSpam", "SpamLinks") or ""; +my @files; #getting user list my @users = $adb->users; @@ -69,7 +70,7 @@ foreach my $user (@users) { printf("Checking for user (%s): %s %s\n", $key,$firstname, $lastname); - my $MailDir = ($key eq "admin")? "/home/e-smith/" . "/Maildir" : "/home/e-smith/files/users/" . $key . "/Maildir"; + my $MailDir = ($key eq "admin")? "/home/e-smith" . "/Maildir" : "/home/e-smith/files/users/" . $key . "/Maildir"; my @modes = ("LearnAsSpam","LearnAsHam","LearnInWL"); foreach my $mode (@modes) { @@ -122,7 +123,7 @@ foreach my $user (@users) { if ($mode eq "LearnAsSpam" and $sadb->get_prop($mode, "DeleteAfterLearn") eq "enabled" and $DelayToMove >0) { my $SpamDir = $MailDir . "/" . $logdir . "/cur/"; return unless (-e $SpamDir and -d $SpamDir); - my @files; + @files=(); find(\&wanted, $junkdir ."/cur" ); find(\&wanted, $junkdir ."/new" ) if ($sadb->get_prop($mode, "LearnNew") eq "enabled" or $sadb->get_prop($mode, "LearnNew") eq "junkmail"); sub wanted { @@ -137,8 +138,7 @@ foreach my $user (@users) { undef @files; foreach $filename (sort keys %filehash){ print "--> moving $filename $filehash{$filename}\n"; - my $flname = basename($filename); - move $filename,"$Learndir/$flname" ; + move $filename,"$MailDir/$dirname/cur" ; } }