Koozali.org: home of the SME Server

LearnAsSpam - E-Mails werden nicht mehr verschoben [gelöst]

Offline Free4All

  • ****
  • 115
  • +0/-0
    • http://de.wikipedia.org/wiki/Lord_of_the_Weed
Hallo Leute,

ich habe seit einiger Zeit das Problem, dass die E-Mails, die als Spam gelernt werden nicht in den Ordner LearnedAsSpam verschoben werden. Habe nun folgendes in der Log-Datei gefunden:

Code: [Select]

Jun  1 23:30:04 myserver su(pam_unix)[1591]: session opened for user xxx by (uid=0)
Jun  1 23:30:04 myserver rssh[1592]: setting log facility to LOG_USER
Jun  1 23:30:04 myserver rssh[1592]: setting umask to 022
Jun  1 23:30:04 myserver rssh[1592]: user xxx attempted to execute forbidden commands
Jun  1 23:30:04 myserver rssh[1592]: command: mv /home/e-smith/files/users/xxx/Maildir/.LearnAsSpam/cur/1180422543.P12222Q0M73669.myserver\:2,a /home/e-smith/files/users/xxx/Maildir/.LearnedAsSpam/cur
Jun  1 23:30:04 myserver su(pam_unix)[1591]: session closed for user xxx


Hat irgendjemand von euch ne Ahnung woran das liegt?  Beim Sript LearnAsHam hab ich übrigens das gleiche Problem. Das Verschieben der mails hat mal geklappt. Ich weiß wirklich nicht was sich da geändert haben könnte.

Braucht ihr eventuell noch weitere Infos, um mir beim Lösen meines Problem zu helfen?

Danke schonmal für eure Hilfe.


[Edit]

Ich habe jetzt mal das Skript auf meinem Rechner und das im Internet miteinander verglichen. Einziger Unterschied ist folgende Zeile:
Code: [Select]
my $move = `su - root -c "mv $filetolearn $MailDir/cur"`;

Statt root habe ich da $key stehen. Kann das der Grund sein? Weiß jemand ob sich bei dem Skript was geändert hat?
Ich bin in der ganzen Skriptgeschichte nicht so fit und möchte jetzt nix kaputt machen bzw. verschlimmbessern.

[Edit]
Durch die Änderung im Skript wurde das Problem gelöst. -> $key in root geändert

Offline holger.reiss

  • *
  • 213
  • +0/-0
LearnAsSpam - E-Mails werden nicht mehr verschoben [gelöst]
« Reply #1 on: June 05, 2007, 12:43:43 PM »
Hi,
vielleicht bin ich jetzt total auf dem Holzweg oder ich hab dich falsch verstanden aber ich hab das bisher so verstanden, dass die Mails, die SME nicht als SPAM erkennt manuel von dir in den Ordner LearnedAsSpam verschoben werden müssen. Dieser Ordner wird jeder Nacht von SME angelernt und anschließend die Mails gelöscht.
Genauso verhält es sich mit Mails, die fälscherlicherweise als Spam erkannt wurden. Diese musst du manuell in LearnedAsHam verschieben. Auch der wird täglich nachts angelernt, nur werden diese Mails nicht automatisch gelöscht.
Nur Mails, die SME automatisch als Spam erkennt, werden in den Ordner junkmail geschoben und als ****SPAM**** gekennzeichnet.
Zumindest funktionert das alles bei mir so mit den Scripten aus diesem Forum.
Falls ich dich falsch verstanden haben sollte, bitte um kurze Info.

Gruß
Holger

Offline Free4All

  • ****
  • 115
  • +0/-0
    • http://de.wikipedia.org/wiki/Lord_of_the_Weed
LearnAsSpam - E-Mails werden nicht mehr verschoben [gelöst]
« Reply #2 on: June 05, 2007, 08:39:58 PM »
Hi Holger,
ich glaube du hast mich da falsch verstanden.
Das Aussieben der Mails funktioniert soweit. Auch beim Lernen ist soweit ich das sehen kann alles ok.

Bei mir siehts so aus:
Mails, die als SPAM in der Nacht gelernt werden sollen kommen in den Ordner "LearnAsSpam" und sollen nach dem Lernen automatisch in den Ordner "LearnedAsSpam" verschoben werden. Und das Verschieben nach dem Lernen klappt nicht mehr. In einem Thread hier im Forum hatten wir zusammen aus dem Löschen ein Verschieben gemacht. Das hat auch ne Weile funktioniert, aber jetzt eben nicht mehr. Daher auch meine Frage, ob sich da was im Skript geändert hat oder am SME Server oder ob es vielleicht daran liegt, dass bei mir im Skript $key und nicht root steht.

Hier nochmal die entsprechende Zeile aus dem Skript:
Code: [Select]
my $move = `su - root -c "mv $filetolearn $MailDir/cur"`;


Also wenn ich mich da missverständlich ausgedrückt haben sollte tut es mir leid. Konnte ich denn jetzt mein Anliegen vernünftig erklären?

Offline holger.reiss

  • *
  • 213
  • +0/-0
LearnAsSpam - E-Mails werden nicht mehr verschoben [gelöst]
« Reply #3 on: June 05, 2007, 09:00:28 PM »
Hi,

ok, jetzt hab ichs verstanden.
Mit welchem Script hast du das denn gemacht?
Ich kenne nur eines, das das ganze nach der Art und Weise macht, wie ich es geschildert habe.

Gruß
Holger

Offline Free4All

  • ****
  • 115
  • +0/-0
    • http://de.wikipedia.org/wiki/Lord_of_the_Weed
LearnAsSpam - E-Mails werden nicht mehr verschoben [gelöst]
« Reply #4 on: June 09, 2007, 09:00:34 AM »
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:

Code: [Select]

#!/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.

Code: [Select]

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?

Offline stefan24

  • *****
  • 483
  • +0/-0
    • www.sme-server.de
LearnAsSpam - E-Mails werden nicht mehr verschoben [gelöst]
« Reply #5 on: June 09, 2007, 09:24:38 PM »
Ändere einfach das "$key" in "root" und es funktioniert wieder. Beim LearnAsHam Script ist es mir jetzt auch passiert und die Änderung hat (ohne sonstige Nebenwirkungen) geholfen.

Offline Free4All

  • ****
  • 115
  • +0/-0
    • http://de.wikipedia.org/wiki/Lord_of_the_Weed
LearnAsSpam - E-Mails werden nicht mehr verschoben [gelöst]
« Reply #6 on: June 11, 2007, 09:44:07 AM »
Ok gut. Ich werds dann so machen.
Wenns Probleme geben sollte würde ich mich dann noch melden.

Danke nochmal euch beiden für eure Hilfe!!!