Hallo,
ich habe unter Suse 10.1 ein Postfix/Cyrus-Mailserver. Da ich inzwischen auch von der Spamflut geplagt bin, habe ich mir den Spamassassin installiert. Um nun für mehrere Benutzer eine Whitelist/Blacklist zu ermöglichen habe ich diesen mit einer MySQL-Datenbank verbunden.
Hier die Anleitungen, die ich benutzt habe und mir geholfen haben:
Spamassassin unter Suse mit Postfix installieren
Spamassassin Wiki - Using SQL
Loading SpamAssassin User Preferences From An SQL Database
Die Tabelle userpref ist so aufgebaut:
Hier der Code meiner SQL.cf in /etc/mail/spamassassin/:
(ohne Zeilenumbruch bei den 4 Zeilen)
Hier zum Problem:
Es scheint dass der username nicht richtig ausgewertet wird.
Ich habe mal diesen Datensatz in die Tabelle userpref angelegt:
Damit klappt die Filterung auch. $GLOBAL wird ausgewertet und die Mails von boese@mail.de vom Spamassassin als Spam markiert (102 Punkte).
Wenn ich statt $GLOBAL meine eigene Mailadresse angebe, dann klappt das nicht:
Die Mail wird nicht als Spam markiert.
In welcher Konfiguration muss ich ansetzen, damit diese Mails auf username-Basis gefiltert werden?
ich habe unter Suse 10.1 ein Postfix/Cyrus-Mailserver. Da ich inzwischen auch von der Spamflut geplagt bin, habe ich mir den Spamassassin installiert. Um nun für mehrere Benutzer eine Whitelist/Blacklist zu ermöglichen habe ich diesen mit einer MySQL-Datenbank verbunden.
Hier die Anleitungen, die ich benutzt habe und mir geholfen haben:
Spamassassin unter Suse mit Postfix installieren
Spamassassin Wiki - Using SQL
Loading SpamAssassin User Preferences From An SQL Database
Die Tabelle userpref ist so aufgebaut:
Code:
CREATE TABLE `userpref` (
`id` int(8) unsigned NOT NULL auto_increment,
`username` varchar(128) NOT NULL default '',
`preference` varchar(64) NOT NULL default '',
`value` varchar(128) default NULL,
`descript` varchar(128) default NULL,
`added` datetime NOT NULL default '2003-01-01 00:00:00',
`added_by` varchar(128) NOT NULL default '',
`modified` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
UNIQUE KEY `id` (`id`),
KEY `type` (`preference`),
KEY `added_by` (`added_by`),
KEY `preference` (`preference`),
KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Spamassassin Preferences' AUTO_INCREMENT=15 ;
Hier der Code meiner SQL.cf in /etc/mail/spamassassin/:
Code:
[root@mailgw spamassassin]# cat sql.cf
user_scores_dsn DBI:mysql:logs:localhost:3306
user_scores_sql_password password
user_scores_sql_username username
user_scores_sql_custom_query SELECT preference, value FROM _TABLE_ WHERE username = _USERNAME_ OR username = '$GLOBAL' OR username = CONCAT('%',_DOMAIN_) ORDER BY username ASC
Hier zum Problem:
Es scheint dass der username nicht richtig ausgewertet wird.
Ich habe mal diesen Datensatz in die Tabelle userpref angelegt:
Code:
INSERT INTO `userpref` (`id`, `username`, `preference`, `value`, `descript`, `added`, `added_by`, `modified`) VALUES
('', '$GLOBAL', 'blacklist_from', 'boese@mail.de', NULL, '', '', '');
Damit klappt die Filterung auch. $GLOBAL wird ausgewertet und die Mails von boese@mail.de vom Spamassassin als Spam markiert (102 Punkte).
Wenn ich statt $GLOBAL meine eigene Mailadresse angebe, dann klappt das nicht:
Code:
INSERT INTO `userpref` (`id`, `username`, `preference`, `value`, `descript`, `added`, `added_by`, `modified`) VALUES
('', 'meine@email.de', 'blacklist_from', 'boese@mail.de', NULL, '', '', '');
Die Mail wird nicht als Spam markiert.
In welcher Konfiguration muss ich ansetzen, damit diese Mails auf username-Basis gefiltert werden?