Working well (SA customization tips)

Quentin Campbell Q.G.Campbell at NEWCASTLE.AC.UK
Fri Nov 22 08:29:12 GMT 2002

> -----Original Message-----
> From: Matt Kettler [mailto:mkettler at] 
> Sent: 18 November 2002 17:02
> Subject: Re: Working well (SA customization tips)
> Since you're running MailScanner the best place to put your 
> rules is in MailScanner's spam.assassin.prefs.conf, but I'd 
> recommend writing and testing them using the command-line 
> tools while editing /root/.spamassassin/user_prefs.


I would have thought doing your command line testing of new rules as
"root" is not a good idea since at most sites the production
SpamAssassin is normally running as root and so will look for a
~root/.spamassassin/user_prefs file. It will thus *always* find and use
the rules you are developing/testing which is not a good idea! 

For this reason I always do my testing as an ordinary user. If the
ordinary login ID I am using is "mylogin" then the rules I am testing
will be in the file ~mylogon/.spamassassin/user_prefs.

When I run "spamassassin -tD <test.msg" as user "mylogon" then it will
add my new rules/scores to a copy of the production rules/scores [1]. My
new rules/scores ones will overide any production ones of the same name.
This is exacly the behaviour you want when testing. The -D option will
show you the rulesets that were added and in which order.

When I am happy that my new rules are OK I merge them into the
production "local" rules/scores in /etc/mail/spamassassin/ I do
not use spam.assassin.prefs.conf or /root/.spamassassin/user_prefs.
These should *only* contain comment lines.


[1] SpamAssassin assumes a hierarchy of rulesets. It loads each ruleset
in turn before it runs. If a rulelset contains a rule/score with the
same name as a rule/score loaded by an earlier ruleset then the later
version overides the earlier one.

At this site the production "spamassassin"  (running as root) loads in
turn the rulesets:

   /usr/share/spamassassin/*.cf      [I *never* change these]
   /etc/mail/spamassassin/   [local additions/changes to the
   ~root/.spamassassin/user_prefs    [is always empty] 

If you run "spamassassin" as "mylogon" for testing new rules/scores then
it will load ~mylogon/.spamassassin/user_prefs rather than

In order that "spamassassin -t" works correctly when run as ~mylogon,
make sure that your production "local" ruleset
(/etc/mail/spamassassin/ in our case) is readable to the world.
Otherwise the rules/scores it contains will be ignored during command
line testing of spamassassin! 

PHONE: +44 191 222 8209    Computing Service, University of Newcastle
FAX:   +44 191 222 8765    Newcastle upon Tyne, United Kingdom, NE1 7RU.
"Any opinion expressed above is mine. The University can get its own." 

More information about the MailScanner mailing list