How to Enable SpamAssassin on your Server [DirectAdmin]

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


2) Start the spamd:

/usr/bin/spamd -d -c -m 5


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}} \
#      {exists{/home/${lookup{$domain}lsearch{/etc/virtual/domainowners}{$value}}/.spamassassin/user_prefs}} \
#      {<{$message_size}} \
#    } }"
#  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}} \
      {exists{/home/${lookup{$domain}lsearch{/etc/virtual/domainowners}{$value}}/.spamassassin/user_prefs}} \
      {<{$message_size}} \
    } }"
  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

You'll want to make sure that you have the correct call to spamc in the spamcheck transport in your exim.conf:

transport_filter = /usr/bin/spamc -u ${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}}



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

apt-get install perl-base perl-modules