Table of Contents

Spamassassin

From v4 Debian's spamassasin is has now dedicated package to provide persistent service:

so /etc/default/spamassasin should be converted to /etc/default/spamd

missing perl modules

Check if some modules are missing:

spamassassin -D --lint 2>&1 | grep -i failed
sudo apt-get install libencode-detect-perl libnet-libidn-perl \
    libemail-address-xs-perl libmail-dkim-perl libmail-spf-perl \
    libio-socket-ip-perl
sudo apt install libdigest-sha-perl libnet-libidn2-perl libmaxmind-db-reader-perl libmaxmind-db-reader-xs-perl
sudo cpan install IP::Country::DB_File Digest::SHA1 IP::Country::Fast

register at DNSWL

Register legitimate SMTP server at: dnswl.org Self Service

Issues

Problem:

info: auto-whitelist: sql-based get_addr_entry xxxxxx: SQL error: Unknown column 'last_hit' in 'order clause'

Solution:

Configure reputation database (read /usr/share/doc/spamassassin/sql/README.txrep) for mysql, execute /usr/share/doc/spamassassin/sql/txrep_mysql.sql

Problem:

  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
                             blocked.  See
                             http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
                              for more information.
                             [URIs: grinn-global.com]

There are lots of queries to google dns 8.8.8.8, but google responds with NXDomain or ServFail. The same single query works. Probably google blocks bursts of this kind of requests.

Solution:

local.cf
dns_server 127.0.0.1

bayes: tok_get_all: SQL error: Illegal mix of collations for operation ' IN '

spamassassin -D --lint 2>&1 | grep bayes
Aug 11 18:10:51.719 [37716] dbg: bayes: tok_get_all: SQL error: Illegal mix of collations for operation 'in'
Aug 11 18:10:51.719 [37716] dbg: bayes: cannot use bayes on this message; none of the tokens were found in the database
Aug 11 18:10:51.719 [37716] dbg: bayes: not scoring message, returning undef

It was running on very old system, upgraded multiple times. Nowadays other encodings are added to MySQL database.

ALTER DATABASE sa CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Not possible to convert bayes databases to new charset:

ALTER TABLE awl CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Recreate tables with new character set (prebiously set for sa database):

Another problem:

For me it was faster to train bayes again:

sa-learn --ham --progress ./hamdir
sa-learn --spam --progress ./spamdir