Настройка spamassassin для работы с MySQL

Предпологается, что MySQL уже стоит.

Заходим в консоль mysql:

mysql -u root -p

Создаем БД в MySQL:

create database "spamassassin";

Создаём пользователя spamassassin с паролем 123 и возможностью доступа с любого хоста:

mysql> grant usage on *.* to "spamassassin"@"localhost" identified by "123";

mysql> grant usage on *.* to "spamassassin"@"%" identified by "123";

Даём ему полные права на базу:

mysql> grant all privileges on "spamassassin".* to "spamassassin"@"localhost"; mysql> grant all privileges on "spamassassin".* to "spamassassin"@"%";

Выполняем запрос:

CREATE TABLE awl (
  username varchar(100) NOT NULL default "",
  email varchar(255) NOT NULL default "",
  ip varchar(40) NOT NULL default "",
  count int(11) NOT NULL default "0",
  totscore float NOT NULL default "0",
  signedby varchar(255) NOT NULL default "",
  PRIMARY KEY (username,email,signedby,ip)
) TYPE=MyISAM;

CREATE TABLE bayes_expire (
  id int(11) NOT NULL default "0",
  runtime int(11) NOT NULL default "0",
  KEY bayes_expire_idx1 (id)
) TYPE=MyISAM;

CREATE TABLE bayes_global_vars (
  variable varchar(30) NOT NULL default "",
  value varchar(200) NOT NULL default "",
  PRIMARY KEY  (variable)
) TYPE=MyISAM;

INSERT INTO bayes_global_vars VALUES ("VERSION","3");

CREATE TABLE bayes_seen (
  id int(11) NOT NULL default "0",
  msgid varchar(200) binary NOT NULL default "",
  flag char(1) NOT NULL default "",
  PRIMARY KEY  (id,msgid)
) TYPE=MyISAM;

CREATE TABLE bayes_token (
  id int(11) NOT NULL default "0",
  token char(5) NOT NULL default "",
  spam_count int(11) NOT NULL default "0",
  ham_count int(11) NOT NULL default "0",
  atime int(11) NOT NULL default "0",
  PRIMARY KEY  (id, token),
  INDEX bayes_token_idx1 (id, atime)
) TYPE=MyISAM;

CREATE TABLE bayes_vars (
  id int(11) NOT NULL AUTO_INCREMENT,
  username varchar(200) NOT NULL default "",
  spam_count int(11) NOT NULL default "0",
  ham_count int(11) NOT NULL default "0",
  token_count int(11) NOT NULL default "0",
  last_expire int(11) NOT NULL default "0",
  last_atime_delta int(11) NOT NULL default "0",
  last_expire_reduce int(11) NOT NULL default "0",
  oldest_token_age int(11) NOT NULL default "2147483647",
  newest_token_age int(11) NOT NULL default "0",
  PRIMARY KEY  (id),
  UNIQUE bayes_vars_idx1 (username)
) TYPE=MyISAM;

CREATE TABLE userpref (
  username varchar(100) NOT NULL default "",
  preference varchar(50) NOT NULL default "",
  value varchar(100) NOT NULL default "",
  prefid int(11) NOT NULL auto_increment,
  PRIMARY KEY  (prefid),
  KEY username (username)
) TYPE=MyISAM;

Думаю, запросы будет проще исполнять из какой-либо программы управления MySQL - PHPMyAdmin или Adminer. Файлы этих запросов лежат в каталоге /usr/share/doc/spamassassin/sql

создаём файл /etc/spamassassin/sql.cf следующего содержания:

user_scores_dsn DBI:mysql:spamassassin:localhost:3306

user_scores_sql_username spamassassin

user_scores_sql_password 123

auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList user_awl_dsn

DBI:mysql:spamassassin:localhost:3306

user_awl_sql_username spamassassin

user_awl_sql_password 123

bayes_store_module Mail::SpamAssassin::BayesStore::SQL bayes_sql_dsn DBI:mysql:spamassassin:localhost:3306

bayes_sql_username spamassassin

bayes_sql_password 123

Открываем файл /etc/default/spamassassin и к строке OPTIONS добавляем параметр -q

Пример:

OPTIONS="--create-prefs --max-children 5 --helper-home-dir=/var/spool/exim4 -u Debian-exim -x -q"

Перезапускаем spamassassin:

/etc/init.d/spamassassin restart

Комментарии

Дорогие посетители моего сайта, подпишитесь на мой канал в Дзене! Это стимулирует меня писать новые и новые познавательные статьи!