So wie die Bayes Werte in einer DB gespeichert werden können, lohnt es sich auh evtl. das automatische whitelisting in eine MySQL DB zu verlegen.
- Vorraussetzungen
perl -MCPAN -e shell install DBD::mysql apt-get install libtie-cache-perl libdbd-mysql-perl
- Nun wird die notwendige DB angelegt
mysqladmin -p create spamassassin_db -u root
- Vergabe der Rechte für einen speziellen User
grant all privileges on spamassassin_db.* to spamassassin_usr@localhost identified by 'password';
- anlegen der notwendigen Tabellen
mysql -u root spamassassin_db -p < /usr/share/doc/spamassassin/sql/awl_mysql.sql
- /etc/spamassassin/local.cf um die SQL-DB Einträge erweitern
use_auto_whitelist 1 user_awl_dsn DBI:mysql:spamassassin_db:localhost user_awl_sql_username spamassassin_usr user_awl_sql_password <pwd> user_awl_sql_table awl
Dabei müssen Sie darauf achten, dass der Zugriff auf die alte autowhiteliste deaktiviert wurde
#auto_whitelist_path /var/spool/spamassassin/auto-whitelist #auto_whitelist_file_mode 0666
eine Änderung der Konfiguration der bayes-DB merkt Spamassassin i.d.R. sofort. Starte Sie dennoch den Dienst neu:
/etc/init.d/spamassasin restart
Um zu prüfen, ob die bayes Einträge auch korrekt abgelegt werden reicht es, sich den Inhalt einer der Tabellen anzuschauen. Steht unter Count eine Zahl > 0 sind bereits Datein gespeichert worden:
mysql -u root -p mysql> use spamassassin_db; mysql> select count(*) from awl; +----------+ | count(*) | +----------+ | 1 | +----------+ 1 row in set (0.01 sec)
Ein Blick in die Log-Datei von Spamassassin schadet auf keinen Fall. Wo diese liegt, kann man der Datei /etc/default/spamassassin entnehmen
6 Kommentare
Vielen Dank an dieser Stelle für die Anleitung. Ein kleiner Fehler ist jedoch enthalten:
user_awl_sql_passwort
wird zu:
user_awl_sql_password
mit D(ora) am Ende, sonst gibt das unschöne Flüche in der Log. 😉
Danke für den Hinweis, ich hab den Fehler korrigiert.
bin deiner anleitung gefolgt, kann leider keine einträge in der db erkennen. wie kann ich am besten sehen wo der fehler liegt… die log von spamassassin kannich nicht finden
wynni
Ich würd die Dateien die Spamassassin zum lernen der E-Mails verwendet (bayes_seen, bayes_toks) einmal verschieben. Anschließend Spamassassin neu starten und mittels sa-learn eine E-Mail verarbeiten. Legt Spamassassin die Dateien neu an, werden noch die lokale Dateien genutzt und nicht die MySQL DB. In diesem Fall schau Dir nochmal die Konfiguration an.
Was sagt denn die Ausgabe
select count(*) from awl;
Bekommst Du einen Wert größer 0 zurück? Wenn ja, hat Spamassassin die MySQL DB schonmal genutzt.
ok, jetzt klappt es doch noch… die daten werden in mysql abgelegt.
danke. ich würde gerne auch manuell black-whitelisten. ist das auch möglich??
Schau mal unter folgendem Link nach:
http://wiki.apache.org/spamassassin/ManualWhitelist
http://email.about.com/cs/spamassassintips/qt/et090403.htm
Vielleicht passt das zu dem was Du suchst.