SpamAssassin sa-learn auf Zarafa Junk Ordner

Status
Für weitere Antworten geschlossen.

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
Hallo,

ich habe mir verschiedene Anleitung zum Thema SpamAssassin unter Zarafa angeschaut. Ich bin nun an den Punkt, an dem ich den Bayesischen Filter die gesammelten Spammails geben möchte.

In allen Anleitungen finde ich dafür immer wieder diesen Befehl:

sa-learn --spam --mbox /var/mail/spam

Diese Pfadangabe --mbox finde ich im Zusammenspiel mit Zarafa jedoch irreführend. Ich dachte der Content von Zarafa wird in der Datenbank abgelegt. Wie kann ich den Junkordner als Source für den Lernprozess definieren?

Wo legt der Bayesische Filter seine Daten ab. In den Anleitungen wird oft eine Datenbank in der local.cf hinterlegt. Die local.cf trägt keine Datenbank.

Vielen Dank für eure Hilfe,
mexx
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
Die Anleitung kenne ich und meine sie auch verstanden zu haben. Mein Kummer bei diesem Weg ist der zusätzliche Account. Ich nutze bereits die drei Gratisuser und kann keinen weiteren hinzufügen. Gibt es für den Anfang einen manuellen Weg den Mailordner zu exportieren?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
über deinen Mailclient die Mails des fraglichen Ordners laden und dann auf deinen Server schieben wo sa-learn wartet. Das Script macht im Prinzip auch nichts anderes. Vielleicht gibt es im Zarafa auch die Option einen Ordner zu exportieren. Weiss es aber nicht sicher
 

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
Ich habe wie im Link beschrieben die beiden Public Folder samt Ham- und Spammails erzeugt. Das Skript habe ich ebenfalls angepasst und zunächst meinen Zarafazugangsdaten versehen. Ich möchte das Skript zum ausprobieren zunächst manuell starten.

Nun erhalte ich beim Starten des Skriptes diese Meldung erhalten.

Can't locate Mail/IMAPClient.pm in @INC (you may need to install the Mail::IMAPClient module)

In der Anleitung wird am Anfang verlangt den perl-Mail-IMAPClient zu installieren? Ist das wirklich notwendig? Wenn ja wie ohne yum?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
klar ist der notwendig, wie sollte sonst Perl wissen was IMAP ist? ;-)
Grundsätzlich kann man Perl Module von CPAN installieren. Weiss aber nicht ob das für das Perl der Firmware auch gilt
Code:
$ perl -MCPAN -e shell
cpan> install Mail::IMAPClient
 

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
Ich habe nun nach der Installation unter unter /root/.cpan/build/Mail-IMAPClient-3.35-_Ww7DD/lib/Mail die Dateien IMAPClient, IMAPClient.pm, IMAPClient.pod. Ich bin in das Verzeichnis gegangen und habe das Skript gestartet. Erneut erscheint die Fehlermeldung

Can't locate Mail/IMAPClient.pm in @INC (you may need to install the Mail::IMAPClient module) (@INC contains: /usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl .) at /volume1/homes/28041981/Skripte/DMZS-sa-learn.pl line 9.
BEGIN failed--compilation aborted at /volume1/homes/28041981/Skripte/DMZS-sa-learn.pl line 9.


line 9 ist der Aufruf use Mail::IMAPClient;

Muss ich im Skript einen Verweis auf den IMAPClient.pm machen? Immerhin ist dieser ja vorhanden.
 

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
Rolle Rückwärts, bin zu schnell. Ich muss im Verzeichnis /root/.cpan/build/Mail-IMAPClient-3.35-_Ww7DD/lib stehen. Dann läuft das Skript. Es meldet zwar noch "MAP Login Failed", aber das schaue ich mir jetzt in Ruhe an. Danke für Deine Hilfe!!!
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ich würde mal probieren /root/.cpan/build/Mail-IMAPClient-3.35-_Ww7DD/lib/Mail als softlink nach /usr/share/perl5/site_perl/Mail zu verlinken
 

Masquerader

Benutzer
Mitglied seit
03. Mrz 2015
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hallo,

nutzt du nur das Perl von der Syno oder hast du noch eins per IPKG installiert? Schau mal per
Rich (BBCode):
which perl
was für einen Pfad er dort ausgibt. Steht dort /opt/bin/perl dann hast du das Paket für die IPKG-Version vom Perl installiert. Dann solltest du das CPAN mit
Rich (BBCode):
/usr/bin/perl -MCPAN - e shell
starten und installieren.
Bei mir funktioniert das Script mit dem IMAP-Zugang eigentlich prima. Das einzige was ich nicht zum laufen bekomme ist der Bayes-Anteil vom Spamassassin - siehe anderer Beitrag.

Gruß
Sebastian
 

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
Mein Problem ist im Augenblick noch der Login. Ich kann das Skript starten und bekomme die Meldung.

Rich (BBCode):
IMAP Login Failed at /.../DMZS-sa-learn.pl line 21.

Dies ist die Anleitung, der ich folge: http://wiki.contribs.org/Zarafa_Bayesian_Learning

Zeile 21 ist dieser Part:

Rich (BBCode):
my $imap = Mail::IMAPClient->new( Server=> '127.0.0.1:8143',
                                  User => 'SpamAdmin',
                                  Password => 'SpamAdminPassword',
                                  Debug => $debug);

if (!defined($imap)) { die "IMAP Login Failed"; }

Ich verwende als User den Zarafa-User, mit dem ich auch mein Zarafakonto benutze. Um einmalig das ganze mal zu probieren, sollte es doch gehen. Leider wird der Login verweigert.

Entweder liegt das am Port oder es fehlt dieser Part:

Rich (BBCode):
db accounts setprop SpamAdmin zarafa enabled
 /etc/e-smith/events/actions/qmail-update-user

Nur statt den neuen User SpamAdmin muss ich meinen Zarafa-User mit dem ich es versuche DB berechtigen. Was meint Ihr?


Edit 10:48: Ohne Angabe eines Ports gelingt der Login und das Skript scheint arbeiten zu wollen. Leider erhalte ich nun die Fehlernmeldung:

Rich (BBCode):
Use of uninitialized value $msgs[0] in join or string at Mail/IMAPClient.pm line 925.
Use of uninitialized value $_ in split at Mail/IMAPClient.pm line 2729.
Use of uninitialized value $msgs[0] in join or string at Mail/IMAPClient.pm line 925.
Use of uninitialized value $_ in split at Mail/IMAPClient.pm line 2729.
 
Zuletzt bearbeitet:

Masquerader

Benutzer
Mitglied seit
03. Mrz 2015
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Ich nutze ein ähnliches Script und habe bei mir den Port 144 angegeben.

Schau mal in der server.cfg vom Zarafa (/etc/zarafa) ob dort unter dem Parameter steht:
Code:
disabled_features = pop3 imap
und ändere das dann in
Code:
disabled_features = pop3
Das war bei mir das Problem...

Ach ja. Im anderen Thread steht zum Abgleich nochmal das von mir verwendete Script. Die Grundlage ist aber die gleiche.
 

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
Ich habe die server.cfg unter /etc/zarafa/server.cfg bearbeitet und imap rausgenommen. Danach Zarafa neugestartet. Leider bleibt es bei den Fehlermeldungen.
 

Masquerader

Benutzer
Mitglied seit
03. Mrz 2015
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Schau doch vorsichtshalber nochmal unter /etc/zarafa/gateway.cfg unter den Punkten
Code:
imap_enable = yes
imap_port = 144
Vielleicht klappt dann erstmal die Sache mit der Anmeldung. Bei mir funktioniert es nicht ohne eine Angabe des Ports.

Ich hatte am Anfang auch Probleme mit dem IMAP, bei mir lag es an den Ordnern. Füge mal das $imap->folders; ein:
Code:
if (!defined($imap)) { die "IMAP Login Failed"; }
$imap->folders;
Dann sieht man erstmal ob er überhaupt einen Befehl mit dem IMAP ausführt.
 

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
Ich habe unter /etc/zarafa/gateway.cfg imap aktiviert und musste aber zusätzlich...

Rich (BBCode):
zarafa-admin -u USERNAME --enable-feature imap

...absetzten, dass es geht. Nun kann ich auch erfolgreich meine Mails per IMAP auf Port 143 abholen. Konnte das mit einen Mailclient machen.

Ohne Deinen Zusatzeintrag erhalte ich diese Meldung.

Rich (BBCode):
Use of uninitialized value $msgs[0] in join or string at Mail/IMAPClient.pm line
Use of uninitialized value $_ in split at Mail/IMAPClient.pm line 2729.
Use of uninitialized value $msgs[0] in join or string at Mail/IMAPClient.pm line
Use of uninitialized value $_ in split at Mail/IMAPClient.pm line 2729.

Mit den Eintrag $imap->folders; bekomme ich diese..

Rich (BBCode):
Use of uninitialized value $msgs[0] in join or string at Mail/IMAPClient.pm line 925.
Use of uninitialized value $_ in split at Mail/IMAPClient.pm line 2729.
Use of uninitialized value $msgs[0] in join or string at Mail/IMAPClient.pm line 925.
Use of uninitialized value $_ in split at Mail/IMAPClient.pm line 2729.

Wie gesagt, IMAP funktioniert. Kann meine Mails per IMAP Client abholen.
 

Masquerader

Benutzer
Mitglied seit
03. Mrz 2015
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hm. Vielleicht ist an dem IMAPClient Paket was kaputt. Kannst ja mal probieren das neu zu installieren. Ansonsten bleibt noch der Weg über das externe IPKG-Perl. Da kannst du im anderen Thread mal nachlesen.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat