How to enable SpamAssassin on your server.

Enter Your Query:
Use '%' for wildcards and quotes for "exact phrases"

Top Level » Email » Spam

How to enable SpamAssassin on your server.Last Modified: Aug 25, 2015, 4:34 pm
To enable SpamAssassin on your server, you need to first need to install it.  Once installed a few minor changes are needed in your /etc/exim.conf file.

1) Before installing SpamAssassin, ensure have the perl/cpan requirements.  This can be done in a few different way, I typically use cpan.
If you have never run cpan before, set cpan to follow prerequisites, to speed up the process:

[server]# cpan
cpan> o conf prerequisites_policy follow
cpan> o conf commit

Then install the required modules:

cpan -i Archive::Tar Digest::SHA Net::DNS::Resolver::Programmable Mail::SPF IP::Country Net::Ident IO::Socket::INET6 Compress::Zlib Mail::DKIM LWP::UserAgent HTTP::Date Encode::Detect ExtUtils::MakeMaker NetAddr::IP Mail::SpamAssassin::Plugin::Razor2 Razor2::Client::Agent IO::Socket::SSL DBI Sys::Syslog

and then run the again.

If it asks you:

Are you ready for manual configuration? [yes] no

be sure to type "no" and press enter.  Only use "yes" if you really know what you're doing.  The default options are going to be the most reliable.

Or, as an alternative to using cpan, CentOS boxes can use this:

yum -y install perl-ExtUtils-MakeMaker perl-Digest-SHA perl-Net-DNS perl-NetAddr-IP perl-Archive-Tar perl-IO-Zlib perl-Digest-SHA perl-Mail-SPF perl-IP-Country perl-Razor2 perl-Net-Ident perl-IO-Socket-INET6 perl-IO-Socket-SSL perl-Mail-DKIM perl-DBI perl-Encode-Detect perl-HTML-Parser perl-HTML-Tagset perl-Time-HiRes perl-libwww-perl perl-Sys-Syslog

2) Use CustomBuild to install SpamAssassin:

cd /usr/local/directadmin/custombuild
./build set spamassassin yes
./build spamassassin

If you have CustomBuild 2.0 you're done the install portion, skip to step 4.

3) If you're using CustomBuild 1.2, or have an older system, you'd just need to ensure that the spamcheck_director is enabled in the exim.conf.
For newer systems, this is done with a line in the exim.conf that looks like this:

.include_if_exists /etc/exim.spamassassin.conf

Delete the # character that's in front of it, and save.  Then setup the exim.spamassassin.conf file:

wget -O /etc/exim.spamassassin.conf

and then restart exim.
For older systems, you might see a section that has #spamcheck_director.  You could optionally uncomment this section, or just leave it commented and add the mentioned .include_if_exists line just before it.

Restart exim:

/etc/init.d/exim restart


/usr/local/etc/rc.d/exim restart

4) Once setup, and exim is restarted, spamd should be running, confirm with:

[root@servercustombuild]# ps ax |grep spamd
21276 pts/0    S+     0:00 grep spamd
27565 ?        Ss     0:03 /usr/bin/spamd -d -c -m 15
27577 ?        S      0:00 spamd child
27578 ?        S      0:00 spamd child

where the "spamd -d -c -m 15" (or something very similar) would indicate it's running.
If not, check /var/log/maillog for clues.

5) Now that SpamAssassin is setup and running, Users just need to enable it at their User Level -> SpamAssassin section to create their user_prefs file, and email scanning should begin.

Other related info

a) The global spamassassin config file is in /etc/mail/spamassassin/

b) If you run debian and are missing perl or some pm files, type:

apt-get install perl-base perl-modules

c)A issue from Dec 2012 is this error:

http: GET 3.3 request failed: 400 URL must be absolute: 400 URL must be absolute
error: no mirror data available for channel
channel: MIRRORED.BY contents were missing, channel failed

With a reported solution being

cd /root
/usr/bin/sa-update --install Mail-SpamAssassin-rules-3.3.2-r1104058.tar.gz
/usr/bin/sa-update --nogpg

If outdated, you can find the latest version of these 4 files HERE.
Related Helpfiles
Spamassassin : Can't locate HTML/ in @INC
How to update your exim.conf
How to enable SpamAssassin for new accounts
How to enable realtime blocklists (RBLs) with exim
Change SpamAssassin to only scan local mailboxes
Can't locate ExtUtils/ in @INC
SpamAssassin: spamd[1234]: Can't locate in @INC
Can't locate LWP/ in @INC
SpamAssassin isn't working
Can't locate Archive/ in @INC
How to create a cronjob to use sa-learn to teach spamassassin - Maildir
REQUIRED module missing: NetAddr::IP
SPAM fighting tools in DirectAdmin

2003 JBMC Software, Suite 173  3-11 Bellerose Drive, St Albert, AB  T8N 1P7  Canada.  Mon-Fri 9AM-5PM MST