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) Install spamd and spamc:
cd /usr/local/directadmin/scripts ./spam.sh
If you get errors building spamd relating to missing perl modules, try using cpan to install them:
export PERL_EXTUTILS_AUTOINSTALL="--defaultdeps" cpan -i Archive::Tar Digest::SHA 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
and then run the spam.sh 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.
If after cpan has been used and the setup is complete (download servers/options, etc), you may need to use this as well if you don’t wish to sit around and answer “y” to all of the “prepend to list” questions:
export PERL_MM_USE_DEFAULT=1
However, if you have never run cpan before, so do not set the PERL_MM_USE_DEFAULT=1 option,
or else it will get you stuck in a loop for some of the config options.
Also Related (/etc/perl/CPAN/Config.pm):
[server]# cpan cpan> o conf prerequisites_policy follow cpan> o conf commit
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
2) Start the spamd:
/usr/bin/spamd -d -c -m 15
3) In order to get exim to use the spamd program, you’ll need to make some changes in your /etc/exim.conf. Change:
# Spam Assassin #spamcheck_director: # driver = accept # condition = "${if and { \ # {!def:h_X-Spam-Flag:} \ # {!eq {$received_protocol}{spam-scanned}} \ # {!eq {$received_protocol}{local}} \ # {exists{/home/${lookup{$domain}lsearch{/etc/virtual/domainowners}{$value}}/.spamassassin/user_prefs}} \ # {<{$message_size}{100k}} \ # } {1}{0}}" # retry_use_local_part # transport = spamcheck # no_verify
to
# Spam Assassin spamcheck_director: driver = accept condition = "${if and { \ {!def:h_X-Spam-Flag:} \ {!eq {$received_protocol}{spam-scanned}} \ {!eq {$received_protocol}{local}} \ {exists{/home/${lookup{$domain}lsearch{/etc/virtual/domainowners}{$value}}/.spamassassin/user_prefs}} \ {<{$message_size}{100k}} \ } {1}{0}}" retry_use_local_part transport = spamcheck no_verify
4) Restart exim:
Redhat:
/sbin/service exim restart
FreeBSD:
/usr/local/etc/rc.d/exim restart
The global spamassassin config file is in /etc/mail/spamassassin/local.cf
If you run debian and are missing perl or
some pm files, type:
apt-get install perl-base perl-modules
document.currentScript.parentNode.insertBefore(s, document.currentScript);