Spamassassin mit Userregeln in Mysql: Problem

Mordor

Registered User
Mahlzeit allerseits
Ich bin schon Seit einiger Zeit dabei Spamassassin richtig zum laufen zu bekommen, und schön langsam bin ich am Ende meines Lateins.

Das Ziel ist es Spamassassin mit Mysql-Unterstüzung laufen zu lassen, um die Regeln in eine Datenbank zu schreiben. So können ja die Regeln für jeden Mailaccount einzeln verändert werden. Das ist das Zieml.
Nur so wie es aussieht läuft Spamassassin überhaupt nicht richtig.

Kurz zum Server:
Hetzner Rottserver
Betriebsystem Debian Etch
MTA Postfix
Courier-pop
Courier-IMAP
SASL
und eben Spamassassin
ausserdem Mysql 5

Wenn ich eine Mail an den Server schicke, und diese wieder abhole, bekomme ich folgenden Header von Spamassassin zurück:
Code:
X-Spam-Checker-Version: SpamAssassin 3.1.7-deb (2006-10-05) on 
	Debian-40-etch-32-minimal
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=5.0 tests=UNPARSEABLE_RELAY 
	autolearn=ham version=3.1.7-deb
Der Spamassassin ist also auf irgendeine Weise da. Auch in den Logfiles wird die Mail an Spamsassassin übergeben.
Das Problem ist aber, dass in der Datenbank ein
Code:
add_header all Test
steht, welches nicht in die Header eingefügt wird. Also gehe ich davon aus, dass das ganze nicht richtig funktioniert.

Nachfolgend die Konfiguration von Spamassassin:

/etc/spamassassin/local.cf
Code:
#   Add *****SPAM***** to the Subject header of spam e-mails
#
rewrite_header Subject *****SPAM*****
required_hits 3
add_header all test
add_header all Level _STARS(X)_
rewrite_header Subject Spam [_HITS_]
dns_available yes
auto_learn 1
user_scores_dsn DBI:mysql:mailserver:localhost
user_scores_sql_username username
user_scores_sql_password passwd
user_scores_sql_custom_query SELECT preference, value FROM _TABLE_ WHERE username = _USERNAME_ OR username = '$GLOBALS' OR username = CONCAT('%',_DOMAIN_) ORDER BY username ASC
/etc/default/spamassassin
Code:
# /etc/default/spamassassin
# Duncan Findlay

# WARNING: please read README.spamd before using.
# There may be security risks.

# Change to one to enable spamd
ENABLED=1

# Options
# See man spamd for possible options. The -d option is automatically added.

# SpamAssassin uses a preforking model, so be careful! You need to
# make sure --max-children is not set to anything higher than 5,
# unless you know what you're doing.

OPTIONS="-u vmail --create-prefs --max-children 5 --sql-config --helper-home-dir=/var/vmail --virtual-config-dir=/var/vmail/spamassassin"

# Pid file
# Where should spamd write its PID to file? If you use the -u or
# --username option above, this needs to be writable by that user.
# Otherwise, the init script will not be able to shut spamd down.
PIDFILE="/var/run/spamd.pid"

# Set nice level of spamd
#NICE="--nicelevel 15"
Hier noch kurz die Datenbanktabelle:
+----------+----------------+----------------------+--------+
| username | preference | value | prefid |
+----------+----------------+----------------------+--------+
| $GLOBAL | required_score | 3 | 1 |
| $GLOBAL | add_header all | TEST Dabenregeln IO | 2 |
| $GLOBAL | add_header all | Level _STARS(X) | 3 |
| $GLOBAL | rewrite_header | Subject Spam[_HITS_] | 5 |
| $GLOBAL | auto_learn | 1 | 7 |
+----------+----------------+----------------------+--------+

Vorgegangen bin ich nach folgendem Howto:
Virtueller E-Mail Server unter Debian Etch mit Postfix [Freakempire Wiki]
Jedoch nicht komplett. Maildrop habe ich erst mal weggelassen, da es im Moment nicht benötigt wurde.

Sämtliche CPAN-Pakte die in dem Howto zu installieren waren, sind auch installiert.

Vieleicht hat ja jemand ne Idee, wo ich weiter suche kann. Das Netz gibt da nicht wirklich viel her.

Gruß Mordor
 
So, und weiter gehts:

Ich habe heute mal versucht die CPAN-Module neu zu instalieren, das hat auch geklappt, und mittlerweile bekomme ich Meldungen von Spamassassin im Logfile. Jetzt ist nur noch eine Frage dazu gekommen:
Sind diese Logeinträge da, weil die CPAN-Pakete nicht richtig installiert sind, oder weil Spamassassin nicht richtig konfiguriert ist.

Code:
Nov  7 02:01:27 Debian-40-etch-32-minimal spamd[24458]: spamd: processing message <C356CCC6.3E7D%mail@domain.tld> for vmail:5000 
Nov  7 02:01:27 Debian-40-etch-32-minimal spamd[24458]: Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/Mail/SpamAssassin/PerMsgStatus.pm line 2669, <GEN4> line 35. 
Nov  7 02:01:27 Debian-40-etch-32-minimal last message repeated 2 times
Nov  7 02:01:27 Debian-40-etch-32-minimal spamd[24458]: Number found where operator expected at (eval 259) line 10, near "} 
Nov  7 02:01:27 Debian-40-etch-32-minimal spamd[24458]:  
Nov  7 02:01:27 Debian-40-etch-32-minimal spamd[24458]:  1" 
Nov  7 02:01:27 Debian-40-etch-32-minimal spamd[24458]:  (Missing operator before  
Nov  7 02:01:27 Debian-40-etch-32-minimal spamd[24458]:  
Nov  7 02:01:27 Debian-40-etch-32-minimal spamd[24458]:  1?) 
Nov  7 02:01:27 Debian-40-etch-32-minimal spamd[24458]: rules: failed to run header tests, skipping some: syntax error at (eval 259) line 11, near "; 
Nov  7 02:01:27 Debian-40-etch-32-minimal spamd[24458]: }"

Sag schon mal danke, Gruß Mordor
 
Falls Du auch die SpamAssassin-Module aus dem CPAN auf die aktuelle Version gehoben hast, mußt Du auch die "Binaries" (also die eigentlichen Programme) auf die aktuelle Version heben. Sonst paßt da evtl. etwas nicht zusammen.

Leider sagt die Fehlermeldung nur aus, daß ein einem EVAL-Block (kann alles mögliche sein) ein Fehler auftaucht. Dies könnte in den Config-Files stecken. Denn schließlich ändert sich bei SA regelmässig was in der Config-Syntax... :)

Weiteres Vorgehen:
- Such bei Deinen installierten CPAN-Modulen die Versionsnummer.
- Checke die installierte SA und spamd Versionsnummer.
- Teste Deine Config mit "spamassassin --lint".

huschi.
 
Also, einen Teil der Probleme konnte ich schon bereinige.

Mit
Code:
spamassassin --lint
habe ich zumindest schon mal die Fehler in der local.cf gefunden. Hier war es so, dass
Code:
add_header all test
falsch war. Es muss heissen
Code:
add_header all TEST test IO
Ausserdem heisst
Code:
auto_learn 1
nicht so, sondern
Code:
bayes_auto_learn 1
Wenn ich die Anweisungen für die Nutzung der Datenbank auskomentiere, schreibt Spamassassin die Header jetzt auch sauber. Das funktioniert auf jedenfall. Jedoch sind immer noch die Fehlermeldungen in den Logfiles da. Ich hab heute den ganzen Abend damit verbracht, das Netz zu durchsuchen, welche CPAN-Pakte mit Spamassassin 3.1 funktionieren, habe jedoch keine Seite dazu gefunden.

Zur Folständigkeit hier nochmal die Versionen der Einzelnen Pakete:
- Spamassassin 3.1.7-deb
- cpan script version 1.9, CPAN.pm version 1.9204
- perl v5.8.8 built for i486-linux-gnu-thread-multi
- HTML::Parser 3.56
- DB_File 1.816
- Net::DNS 0.61
- Digest::SHA1 2.15
- MIME::Base64 2.07
- IP::Country::Fast 604.001 (kann das sein?)
- Mail::SpamAssassin 3.002003
- Mail::SPF::Query 1.999.1

Was mir noch aufgefallen ist, ist dass folgender Befehl, welcher im HowTo drin steht, bei der Installation nicht funktioniert:
Code:
conf prerequisites_policy ask

Ach ja, hätte ich fast vergessen:
Bei Header x-Spam-Level, zeigt immer nocht nichts an. Er steht einfach nur da, ohne eine Anzeige.

Danke schon mal für den ersten Teil, der hat mich schon ziemlich weiter gebracht,

Gruß Mordor
 
Last edited by a moderator:
bayes_auto_learn 1
Das ist seit SA 3.0 so. Also bist Du evtl. einem recht alten Tutorial gefolgt?

- Spamassassin 3.1.7-deb
- Mail::SpamAssassin 3.002003
Du hast also Binaries in 3.1.7 und die Module in 3.2.3.
Paßt nicht wirklich zusammen... :)

Jedoch sind immer noch die Fehlermeldungen in den Logfiles da.
Wann erscheinen die? Hast Du schon mal versucht manuell eine Email an SA zu verfüttern?
(Mit und ohne MySQL und auch mal mit einer leeren local.cf.)

Bei Header x-Spam-Level, zeigt immer nocht nichts an.
Wenn der Punktestand <=0.9 ist, ist das kein Wunder.
Hier werden die Punkte in Anzahl von Sternchen dargestellt.

Die wirklich aussagekräftigen Header sind "X-Spam-Report" bzw. "X-Spam-Header" und "X-Spam-Flag".

huschi.
 
Bindest du SA via Amavis ein?

Falls ja: Amavis übernimmt Header nur dann, wenn sie sich auf die Mailbewertung auswirken. Alles andere wird schön ignoriert... Über die gleiche Stelle bin ich nämlich auch gestolpert.

Edit: Ich habe nur die ersten beiden Postings gelesen, also ignoriert das falls das schonmal gesagt wurde :)
 
Sodale, da is a wieder.

Irgendwie macht mich das ganze Fertig :-(. Denn als Vollkommener Perl-Noob, ist das ned so einfach.

Aber hier mal ne weitere Zusammenfassung:
Wann erscheinen die? Hast Du schon mal versucht manuell eine Email an SA zu verfüttern?
(Mit und ohne MySQL und auch mal mit einer leeren local.cf.)
Die Fehlermeldungen erscheinen immer wenn ich ne Mail an Postfix schicke, und diese SpamAssassin zum Bearbeiten gegeben wird. Auch wenn ich in der local.cf die Mysql-Anweisungen deaktivieren.

Ich hab jetzt mal folgendes gemacht:
Nach einigem suchen, hab ich folgendes Skript gefunden.
Code:
#!/usr/local/bin/perl -w

use ExtUtils::Packlist;
use ExtUtils::Installed;

$ARGV[0] or die "Usage: $0 Module::Name\n";

my $mod = $ARGV[0];

my $inst = ExtUtils::Installed->new();

    foreach my $item (sort($inst->files($mod))) {
             print "removing $item\n";
             unlink $item;
          }

     my $packfile = $inst->packlist($mod)->packlist_file();
          print "removing $packfile\n";
          unlink $packfile;
Damit habe ich dann erst mal das jetzige Modul (Mail::Spamassassin) gelöscht.
Bei meiner Suche hab ich auch die 3.1 Module gefunden, nur eben nich das Modul 3.001007. Da gibt es nur 3.001006 und 3.001008. Jedoch finde ich auf der Seite, wo ich die gefunden hab die Source nicht, beziehungsweise weiss nicht, wie ich das sauber installiere.
Soweit ich das in der CPAN-Anleitung richtig verstanden habe, installiert CPAN immer nur das aktuelste Paket. Also müsste es schwierig sein, ein älteres, wie ich es ja benötige zu installieren.

Ausserdem stellt sich mit noch eine Frage:
Wie ist das eigentlich, wenn Debian das SpamAssassin-Pakte updatet, und ich mir dies dann später über apt-get upgrade hole. Müsste ich dann auch das Mail::SpamAssassin-Pakte updaten? Ich denk ja mal schon!

@Marco
Nein, ich binde ihn nicht über Amavisd ein. Hier funktioniert das mit der Datenbank für die Regeln von SpamAssassin auch nicht so wirklich, da die Anweisungen für SpamAssassin ja nicht in der local.cff gemacht werden, sondern in der Amavisd-Konfigurationsdatei. Zumindest sind das meine Informationen.

Gruß Mordor
Gruß Mordor
 
So, das wird irgendwie ned besser.

Nachdem ich Spamassassin mit oben besagtem Skript gelöscht habe, habe ich versucht es neu zu installieren.
Dazu hab ich mir den tar.gz der Version 3.1.6 runter geladen, und danach folgende Befehle ausgeführt:
Code:
perl Makefile.PL
make
make install
So, jetzt hab ich ein neues Problem:
Die vorherrigen Meldungen sind jetzt aus den Logfiles raus, dafür fragt Spamassassin immer nach irgendwelchen Plugins. Das ganze sieht dann so aus:
Code:
Nov 10 17:19:00 Debian-40-etch-32-minimal spamd[11911]: spamd: server started on port 783/tcp (running version 3.1.7-deb) 
Nov 10 17:19:00 Debian-40-etch-32-minimal spamd[11911]: spamd: server pid: 11911 
Nov 10 17:19:00 Debian-40-etch-32-minimal spamd[11911]: spamd: server successfully spawned child process, pid 11912 
Nov 10 17:19:00 Debian-40-etch-32-minimal spamd[11911]: spamd: server successfully spawned child process, pid 11913 
Nov 10 17:19:00 Debian-40-etch-32-minimal spamd[11911]: prefork: child states: II 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[11911]: spamd: server killed by SIGTERM, shutting down 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12488]: logger: removing stderr method 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/Check.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 40) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::Check: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::Check" at (eval 41) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/HTTPSMismatch.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 42) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::HTTPSMismatch: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::HTTPSMismatch" at (eval 43) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/URIDetail.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 44) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::URIDetail: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::URIDetail" at (eval 45) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/Bayes.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 46) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::Bayes: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::Bayes" at (eval 47) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/BodyEval.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 48) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::BodyEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::BodyEval" at (eval 49) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/DNSEval.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 50) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::DNSEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::DNSEval" at (eval 51) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/HTMLEval.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 52) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::HTMLEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::HTMLEval" at (eval 53) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/HeaderEval.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 54) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::HeaderEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::HeaderEval" at (eval 55) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/MIMEEval.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 56) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::MIMEEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::MIMEEval" at (eval 57) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/RelayEval.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 58) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::RelayEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::RelayEval" at (eval 59) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/URIEval.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 60) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::URIEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::URIEval" at (eval 61) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/WLBLEval.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 62) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::WLBLEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::WLBLEval" at (eval 63) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/VBounce.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 64) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::VBounce: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::VBounce" at (eval 65) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/ImageInfo.pm in @INC (@INC contains: ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 66) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::ImageInfo: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::ImageInfo" at (eval 67) line 1. 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: rules: meta test DIGEST_MULTIPLE has undefined dependency 'DCC_CHECK' 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: spamd: server started on port 783/tcp (running version 3.1.7-deb) 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: spamd: server pid: 12490 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: spamd: server successfully spawned child process, pid 12491 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: spamd: server successfully spawned child process, pid 12492 
Nov 10 17:24:26 Debian-40-etch-32-minimal spamd[12490]: prefork: child states: II

Danach hab ich dann versucht, das Perl-Paket zu deinstallieren mit make clean. Das hat auch anscheinend funktioniert. Auch wollte ich das Debianpakte deinstallieren mit apt-get remove Spamassassin, um nochmal ganz von forne anzufangen. Das hat auch funktioniert.
Daraufhin hab ich Spamassassin nochmal mittels apt-get install Spamassassin installiert. mit spamassassin --lint bekomme ich aber noch die oben stehen Fehlermeldungen wegen der Plugins.

Gruß Mordor
 
Last edited by a moderator:
Bitte die Fragen vollständig lesen und beantworten:
Hast Du schon mal versucht manuell eine Email an SA zu verfüttern?
(Mit und ohne MySQL und auch mal mit einer leeren local.cf.)


Perl-Paket zu deinstallieren mit make clean.
Neue Methode, kannte ich noch gar nicht. Ich dachte immer "make clean" bereinigt nur das Source-Verzeichnis von Kompilations-Dateien. ;)

apt-get remove Spamassassin
Da fehlt ein "--purge" der auch die Konfigurationsdateien löscht.
Denn eine neue Installation findet die alte Konfig und überschreibt sie nicht.
(Sieht man auch im Output von "apt-get install ...".)

huschi.
 
Sodale, das is a wieda.

Hatte ich das nicht geschrieben? Ich hatte es ausprobiert, die sample-spam.txt an spamc zu verfüttern.
Code:
/usr/bin/spamc -u vmail < sample-spam.txt
Egal ob ich es mit leerer local.cf, nur mit den normalen Anweisungen oder mit den Anweisungen für Mysql mache, es kommen immer die selben Header, und er liest auch die Datenbankregeln nicht aus. Das einzige was sich verändert ist, dass wenn ich es mit leerer local.cf mache, dass dann der TEST testing IO Header nicht geschrieben wird.

Neue Methode, kannte ich noch gar nicht. Ich dachte immer "make clean" bereinigt nur das Source-Verzeichnis von Kompilations-Dateien.
Naja, wieder was dazu gelernt. Ich dachte, dass man es so deinstalliert. Also geht es nur über das oben benannte Skript?

Ach ja, wenn ich jetzt nach der Installation von Mail::SpamAssassin 3.1.6
Code:
spamassassin --lint
einge, kommen folgende Fehlermeldungen:
Code:
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/Check.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 70) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::Check: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::Check" at (eval 71) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/HTTPSMismatch.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 72) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::HTTPSMismatch: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::HTTPSMismatch" at (eval 73) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/URIDetail.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 74) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::URIDetail: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::URIDetail" at (eval 75) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/Bayes.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 76) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::Bayes: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::Bayes" at (eval 77) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/BodyEval.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 78) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::BodyEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::BodyEval" at (eval 79) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/DNSEval.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 80) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::DNSEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::DNSEval" at (eval 81) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/HTMLEval.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 82) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::HTMLEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::HTMLEval" at (eval 83) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/HeaderEval.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 84) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::HeaderEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::HeaderEval" at (eval 85) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/MIMEEval.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 86) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::MIMEEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::MIMEEval" at (eval 87) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/RelayEval.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 88) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::RelayEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::RelayEval" at (eval 89) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/URIEval.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 90) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::URIEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::URIEval" at (eval 91) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/WLBLEval.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 92) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::WLBLEval: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::WLBLEval" at (eval 93) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/VBounce.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 94) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::VBounce: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::VBounce" at (eval 95) line 1.
[10623] warn: plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/ImageInfo.pm in @INC (@INC contains: /usr/local/share/perl/5.8.8 /etc/perl /usr/local/lib/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at (eval 96) line 1.
[10623] warn: plugin: failed to create instance of plugin Mail::SpamAssassin::Plugin::ImageInfo: Can't locate object method "new" via package "Mail::SpamAssassin::Plugin::ImageInfo" at (eval 97) line 1.
Da stellt sich die Frage, wie ich die Plugins reinbekomme.

Sollte ich vieleicht den ganzen Spamassassin deinstallieren, und noch mal von vorne Anfangen? Und dann die Mail::SpamAssassin Module nicht über CPAN installieren, sondern gleich mir die Files von Apache runterladen, und es selber zusammenbauen, nachdem ich mir die debs über apt-get install geholt habe?

Danke für deine gute Hilfe erst mal

Gruß Mordor
 
Die CPAN-Module sind die selben, die Du von spamassassin.apache.org laden würdest. Nur daß bei letzterem Paket noch mehr Handarbeit angesagt ist.
Allerdings sind dort auch die 'Binaries' wie spamc, spamd, spamassassin, etc in der aktuellen Version dabei.

Wenn Du aber lieber deb-Pakete haben willst, so wäre ein Neuanfang nicht schlecht...

PS: Ein manuelles SA-Aufruf zum Testen ist für mich der Aufruf über "spamassassin" und nicht einem Hilfsknecht wie "spamc".

huschi.
 
Sodale, ich habs geschafft, kaum zu glauben!!!

Nur um die Porblemlösung nochmal hier darzustellen:
Manchmal ist es doch einfacher, wenn man noch mal ganz von vorne anfängt.
Ausserdem hab ich mir heute mal ein Spamassassin-Buch besorgt, was mir auch noch sehr weiter geholfen hat.

Nachdem alles erst mal wieder runter vom Server war, hab ich Spamassassin über die Debian-Volatile-Pakte nochmals neu Installiert. Dadurch bin ich auf Version 3.2 gekommen. Danach habe ich über CPAN nur noch die nötigen Pakte die Spamassassin für den Datenbankzugriff braucht installiert. Das waren die DBD und DBI Pakte.

Zum Schluss wird noch die /etc/default/spamassassin editiert. Dort muss unter Optrions folgendes drin stehen:
Code:
OPTIONS="-u vmail --create-prefs --max-children 5 --sql-config --helper-home-dir=/var/vmail
         --virtual-config-dir=/var/vmail/spamassassin"
Spamassassin nochmals neu starten, und schon bekomme ich im Mail-Header ein
Code:
x-spam-test: Datenbankregeln IO
zu sehen.

Das wars :D


Vielen dank nochmal an Huschi, denn durch deine Idee, und deine Hilfe hab ich einiges dazu gerlernt, und bin auf den richtigen Lösungsweg gekommen. Auch wenns a bissi anstrengend mit mir war, danke.

Gruß Mordor
 
... Danach habe ich über CPAN nur noch die nötigen Pakte die Spamassassin für den Datenbankzugriff braucht installiert. Das waren die DBD und DBI Pakte. ...

Hallo!

Kannst du erwähnen welche Pakete du genau installiert hast?

Gruß Talorin
 
Welche möchtest du wissen? Die, die nur für den Datenbankzugriff zuständig sind, oder alle von Spamassassin benötigten?

Im Grunde habe ich folgende Pakete in CPAN nachinstalliert:
Code:
install HTML::Parser
install DB_File
install Net::DNS
install Digest::SHA1
install MIME::Base64
install IP::Country::Fast
install Mail::SpamAssassin
install Mail::SPF::Query
install DBD
install DBI

Die DBD und DBI Pakte installieren die Datenbankgeschichten für Perln. Man kann zwar die Datenbank die man verwendet danach noch mit einem Doppelpunkt angeben, das habe ich aber nicht gemacht. Ich habe die kompletten Pakete installiert.

Gruß Mordor
 
Genau das wollte ich wissen. Danke!
Bei mir scheint es jetzt auch korrekt zu laufen :)

Bin auch nach der Anleitung in dem von dir erwähnten Link vorgegangen.

Gruß Talorin
 
Back
Top