Richard Hobbs wrote:
Hello,
We have a mail server on which I would like to enable spamassassin, but only
for individual users. We're running Exim 4.50 and SpamAssassin 3.0.3 on a
Debian 3.0 box. Mailman 2.1.5 is also running on the machine if it makes a
difference.
Some users do not want spam checking to be done at all, but other users
would like it to be done. The part I'm having trouble with is understanding
how to get exim to use spamassassin at all, let alone for some accounts and
not others.
Also, i have already spent hours on Google trying to find a guide or a
how-to somewhere, and I can't find anything.
I have already got spamassassin working in daemon mode (by running spamd).
All I have done so far is change 'ENABLED' to '1' in
"/etc/default/spamassassin". All other spamassassin config is default apart
from the following line in "/etc/mail/spamassassin/local.cf":
rewrite_header Subject ****SPAM****
SpamAssassin detects spam successfully if I type:
spamassassin -t < sample-spam.txt
But I don't think this is using the spamd daemon, is it? How can I test
using 'spamc'?
No, that's not using spamd. Try 'man spamc', that will tell you how to use it.
Once we know spamc can successfully talk to spamd which successfully detects
spam, how can I let individual users enable or disable spam checking on
their account as they please? I have not changed the exim configuration at
all yet because I can't quite figure out what needs to be done.
You need a router which checks for each local recipient whether they want to
have their messages spam scanned. This routes messages to be scanned to a
transport which will scan the message and then re-inject it into the queue
for delivery. The normal test for a user who wants to have their messages
scanned is the existence of the user_prefs file in their directory
$HOME/.spamassassin.
This is the router I use:
HOME_DIR=/var/mail/home
spamtest:
driver = accept
no_verify
check_local_user
require_files = HOME_DIR/$local_part/.spamassassin/user_prefs
condition = ${if eq {$received_protocol}{spam-scanned}{no}{yes}}
transport = spamcheck_transport
and this is my transport:
spamcheck_transport:
driver = pipe
home_directory = /var/spool/mail
batch_max = 1000
use_bsmtp
headers_remove =
X-Spam-Score:X-Spam-Status:X-Spam-Flag:X-Spam-Checker-Version:X-Spam-Report:X-Spam-Level:
command = /usr/sbin/exim -oMr spam-scanned -bS
transport_filter = /usr/bin/spamc -f -s 5000000 -u $local_part
user = mail
log_output = true
return_fail_output = true
return_path_add = false
message_prefix =
message_suffix =
--
Nigel Wade, System Administrator, Space Plasma Physics Group,
University of Leicester, Leicester, LE1 7RH, UK
E-mail : [EMAIL PROTECTED]
Phone : +44 (0)116 2523548, Fax : +44 (0)116 2523555
--
## List details at http://www.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/