SpamAssassin & Razor how-to

SpamAssassin & Razor how-to:

When used in conjuction with Vipul's Razor, SpamAssassin's accuracy can really go to new levels, making junkmail filtering far more accurate. Here's how to set both of these up on a Tiger server system (note: be sure to backup your system, or at least make copies of any files you're modifying before starting!):

First, fix a problem with SpamAssassin's out of the box configuration, by re-creating a symlink. I've found it best to sudo to root, then su to clamav, to get the permissions correct, as follows (warning: this will remove the current database of 'learned junk' if it exists):

sudo -s
cd /var/amavis
mv .spamassassin .spamassassin.old
su clamav
ln -s /var/clamav/.spamassassin /var/amavis/.spamassassin

When you've done this, do 'ls -la' and you should see a line like this:

lrwxr-xr-x 1 clamav clamav 25 Feb 8 21:51 .spamassassin -> /var/clamav/.spamassassin

Next, check a few parameters in the '/etc/mail/spamassassin/local.cf' file. First run:

spamassassin --lint

If you're running 10.4.2 - 10.4.4, you might see output similar to:

config: SpamAssassin failed to parse line, skipping: auto_learn 1
config: SpamAssassin failed to parse line, skipping: safe_reporting 0
config: SpamAssassin failed to parse line, skipping: use tersereport 0
config: SpamAssassin failed to parse line, skipping: subject_tag * Warning: Junk Mail *
config: SpamAssassin failed to parse line, skipping: rewrite_subject 0
lint: 5 issues detected. please rerun with debug enabled for more information.

To fix this, first backup your '/etc/mail/spamassassin/local.cf' file, then open the file and change any of the above output, as follows:

change 'auto_learn' to 'bayes autolearn'
change 'safe_reporting' to 'safe_report'
comment out 'use tersereport 0'
comment out 'subject_tag' and 'rewrite_subject'

Now issuing 'spamassassin --lint' should just return you to your command prompt without any output. If so, you're all set.


Next, we need to check a bunch of things in the '/etc/amavisd.conf' file. First, backup your file, then make sure the following lines look as follows (don't forget the semi-colons at the end of each line!):

$sa local_testsonly = 0;

I like to set this to 0 (disable), in order to enable network tests by tools such as razor, which can dramatically improve SpamAssassin's accuracy. See below for more details on using Razor.

$sa tag_leveldeflt = -999;

This low threshold causes SpamAssassin to add X-Spam headers to all local messages scoring above -999, which should be all of them.

$sa tag2_leveldeflt = 5;

This is the SpamAssassin score at which to consider a message spam and tag it as such (by modifying the subject line), a good starting point is about 5

$sa kill_leveldeflt = 10;

If a message's SpamAssassin score reaches this level, then the 'final spamdestiny' action is taken. I like to set this to around 10, depending on what 'final spamdestiny' is. Remember, if 'final spamdestiny' is set to reject mail, this is the score at which the mail will be rejected. I like to start out with the 'D_PASS' setting for starters, which delivers the mail even if this score is reached (see below for more info on the 'final spamdestiny' setting).

$sa spam_subjecttag = ' * Junk Mail *';

When a message's SpamAssassin score reaches the '$sa tag2_leveldeflt' score (above), then the text here is added to the beginning of the email subject line.

$final spamdestiny = [D DISCARD,D_BOUNCE,DPASS];

This tells SpamAssassin what to do with a message that reaches the '$sa kill_leveldeflt' score. It can be set to one of the three values above (so, for example, to deliver all mail, the line would be $final spamdestiny = D_PASS;).

@local domainsacl = [acl]

This line tells SpamAssassin which email domains are hosted by the local system, and thus which ones to take action on. Make sure all possible local domains that will be handled by your mail server are listed here. An example would be:

@local domainsacl = ( '.myDomain1.com', '.myDomain2.com', '.myDomain3.com' );

OK: next, if you run virtual domains, make sure this line is uncommented (i.e. no '#' sign at the beginning of the line):

@local domainsmaps = ( 1 );

If the line doesn't exist and you need it, add it after the '@local domainsacl = ...' line.

If you want to use razor (see below), make sure to add the following lines, if they don't already exist:

use_razor2 1
razor_timeout 10
score RAZOR2 CF_RANGE_51100 4.0

Whew! OK we're done with the '/etc/amavisd.conf' file. Next, you need to feed junkmail to your system, and lots of it. First, you'll need to set up two 'training' accounts on your system. One called 'junkmail' and one called 'notjunkmail.' This is explained in more detail on page 52 of the Mail Service Admin guide, available here: http://images.apple.com/server/pdfs/MailServicev10.4.pdf.

After you've set up these accounts, you need to redirect (be sure not to forward!!) around 200 junk and non-junk messages (around 400 total) to each mailbox. This is crucial, and if there aren't enough messages in there, SpamAssassin will be pretty inaccurate. One way to make it easier to feed the boxes is to setup the two IMAP accounts in your mail program. Then you can just drag and drop junk mail from your real account into the inbox for the 'junkmail' account (and likewise for the 'notjunkmail' account). This is a lot easier than the mass redirects. If appropriate, do the same for other users on your system.

One more thing that is sometimes broken out of the box with Tiger Server is the script that trains the junkmail filter each day (as described in the admin guide from step 4), using the contents of the 'junkmail' and 'notjunkmail' accounts. You'll need to fix this for automatic training of the filter, and an easy way to do this is to the use the great SpamTrainer for OS X, which is available here: http://osx.topicdesk.com/downloads/. Just download and follow the simple instructions, and your training scripts will be all set to run.

Improving SpamAssasin's accuracy with Razor:

There are many add-ons that can be enabled which really beef up SpamAssassin's accuracy, and one I like to use is Vipul's Razor. In order to install this, you'll need the Xcode 2.2 developer tools installed on your system. To get Xcode visit the Apple Developer's site, register for a free account, then download and install the tools. Once you've done that, download razor-agents the the razor-agents sdk here. Once downloaded, unpack them like so:

tar -xvjf razor-agents-2.77.tar.bz2
tar -xvjf razor-agents-sdk-2.07.tar.bz2

Then cd into the razor agents sdk dir and install, like so:

cd razor-agents-sdk-2.07
perl Makefile.PL
make
make test
make install

After you've done SDK, cd into the razor agents dir and do likewise, like so:

cd ../razor-agents-2.77
perl Makefile.PL
make
make test
make install

OK - now to set up Razor: if you're still in a root shell (i.e. you see a '#' sign at the end of your shell prompt), then type 'exit' and hit enter to return to your regular user shell (if you're not sure, just open a new terminal window, or ssh session if you're doing this over ssh). Then run:

razor-admin -create

which creates a config file in your user home directory. Then choose an email address with which to register razor, and do the registration:

razor-admin -register -user=user@domain.com

That should do it. Once you've completed these steps and trained SA, your filtering will be much more accurate.

iBook G4 Mac OS X (10.4.4)

Posted on Feb 16, 2006 2:41 PM

Reply
12 replies

May 7, 2006 9:22 AM in response to Dave Walcott

Just a followup note, circa May 2006 / Tiger 10.4.6:

The instructions above about adding Razor to the amavisd.conf file no longer work:
If you want to use razor (see below), make sure to add the following lines, if they don't already exist:

use_razor2 1
razor_timeout 10
score RAZOR2 CF_RANGE_51100 4.0
These generate various amavisd config parser problems during load, including "missing semicolon" and more importantly, an apparent complete lack of support for the "use_razor2" keyword.

After doing some research, I found a few references to adding these files into the /etc/mail/spamassassin/local.cf config file. Accordingly, I've added these lines verbatim to SA's local.cf file and the mail server (including amavisd) is now booting OK. It appears to be processing just fine, although I'm not entirely sure how I can tell if it's using Razor...

I also found a reference to making sure that the amavisd process has permissions to read and write in your .razor directory. In my case, amavisd is running as 'clamav' so, I made sure to do "chgrp -R clamav .razor" and "chmod -R g+w .razor" on my Razor config directory. This seems to make sense and (as above) seems to be working OK... 🙂 hmmmm...

May 12, 2006 10:56 PM in response to Zacharias Beckman

Interesting: I finally patched my server to 10.4.6 today, and left all configurations as per my post, above, and all works fine. Still getting Bayes and Razor headers in email messages, and no postfix probs.

Just a followup note, circa May 2006 / Tiger 10.4.6:

The instructions above about adding Razor to the
amavisd.conf file no longer work:
If you want to use razor (see below),
make sure to add the following lines, if they don't
already exist:

use_razor2 1
razor_timeout 10
score RAZOR2 CF_RANGE_51100 4.0
These
generate various amavisd config parser problems
during load, including "missing semicolon" and more
importantly, an apparent complete lack of support for
the "use_razor2" keyword.

After doing some research, I found a few references
to adding these files into the
/etc/mail/spamassassin/local.cf config file.
Accordingly, I've added these lines verbatim to SA's
local.cf file and the mail server (including amavisd)
is now booting OK. It appears to be processing just
fine, although I'm not entirely sure how I can tell
if it's using Razor...

I also found a reference to making sure that the
amavisd process has permissions to read and write in
your .razor directory. In my case, amavisd is running
as 'clamav' so, I made sure to do "chgrp -R clamav
.razor" and "chmod -R g+w .razor" on my Razor config
directory. This seems to make sense and (as above)
seems to be working OK... 🙂 hmmmm...



MacBook Pro Mac OS X (10.4.6)

May 14, 2006 9:08 PM in response to Dave Walcott

Are these corrections still applicable to SpamAssassin 3.0.1? I just want to make sure before I start changing things...

Specifically:

/*
@local domainsacl = ( '.myDomain1.com', '.myDomain2.com', '.myDomain3.com' );
*/

I'm going to have maybe a dozen domains, and that line is going to get long and difficult to maintain. I've noticed that there's a line below that that says:

#read hash(%localdomains, '/var/amavis/local_domains');

If I remove the comment character, can I put a list of domains in the file /var/amavis/local_domains or am I not reading that right?

Thanks for the tutorial! Why doesn't it work out of the box?

Jun 15, 2006 3:49 AM in response to Dave Walcott

I am trying to get my sa working, however, when I attempt to fix my local.cf file I get the following error:

Argument "" isn't numeric in numeric eq (==) at /System/Library/Perl/Extras/5.8.6/Mail/SpamAssassin/Conf/Parser.pm line 578.
config: SpamAssassin failed to parse line, skipping: safe_report 0
lint: 1 issues detected. please rerun with debug enabled for more information.

Server is running 10.4.6. Any suggestions?

Thanks,

Dan





Jun 15, 2006 8:44 AM in response to Dan Guenst

I am trying to get my sa working, however, when I
attempt to fix my local.cf file I get the following
error:

Argument "" isn't numeric in numeric eq (==) at
/System/Library/Perl/Extras/5.8.6/Mail/SpamAssassin/Co
nf/Parser.pm line 578.
config: SpamAssassin failed to parse line, skipping:
safe_report 0
lint: 1 issues detected. please rerun with debug
enabled for more information.


I assume you're getting this in response to the 'spamassasin --lint' command? If so, try running it in debug mode:

spamassasin --lint -D

Also, can you post line 578 (give and take a few lines) of your '/System/Library/Perl/Extras/5.8.6/Mail/SpamAssassin/Conf/Parser.pm' file?

MacBook Pro Mac OS X (10.4.6)

Jun 15, 2006 5:20 PM in response to Dave Walcott

Checked my changes and found a mistake, however, I get the following error after I run spamassassin -lint

serv3:/etc/mail/spamassassin root# spamassassin --lint
config: SpamAssassin failed to parse line, skipping: safe_report 0
lint: 1 issues detected. please rerun with debug enabled for more information.
serv3:/etc/mail/spamassassin root#

I double checked the local.cf file change to 'safe_report' and it looks good.

When I run debug, this is what I get:

serv3:/etc/mail/spamassassin root# spamassassin --lint -D
debug: SpamAssassin version 3.0.1
debug: Score set 0 chosen.
debug: running in taint mode? yes
debug: Running in taint mode, removing unsafe env vars, and resetting PATH
debug: PATH included '/bin', keeping.
debug: PATH included '/sbin', keeping.
debug: PATH included '/usr/bin', keeping.
debug: PATH included '/usr/sbin', keeping.
debug: Final PATH set to: /bin:/sbin:/usr/bin:/usr/sbin
debug: diag: module not installed: DBI ('require' failed)
debug: diag: module installed: DB_File, version 1.810
debug: diag: module installed: Digest::SHA1, version 2.10
debug: diag: module installed: IO::Socket::UNIX, version 1.21
debug: diag: module installed: MIME::Base64, version 3.05
debug: diag: module not installed: Net::DNS ('require' failed)
debug: diag: module not installed: Net::LDAP ('require' failed)
debug: diag: module not installed: Razor2::Client::Agent ('require' failed)
debug: diag: module installed: Storable, version 2.13
debug: diag: module installed: URI, version 1.35
debug: ignore: using a test message to lint rules
debug: using "/etc/mail/spamassassin/init.pre" for site rules init.pre
debug: config: read file /etc/mail/spamassassin/init.pre
debug: using "//usr/share/spamassassin" for default rules dir
debug: config: read file //usr/share/spamassassin/10_misc.cf
debug: config: read file //usr/share/spamassassin/20 antiratware.cf
debug: config: read file //usr/share/spamassassin/20 bodytests.cf
debug: config: read file //usr/share/spamassassin/20_compensate.cf
debug: config: read file //usr/share/spamassassin/20 dnsbltests.cf
debug: config: read file //usr/share/spamassassin/20_drugs.cf
debug: config: read file //usr/share/spamassassin/20 fake_helotests.cf
debug: config: read file //usr/share/spamassassin/20 headtests.cf
debug: config: read file //usr/share/spamassassin/20 htmltests.cf
debug: config: read file //usr/share/spamassassin/20 metatests.cf
debug: config: read file //usr/share/spamassassin/20_phrases.cf
debug: config: read file //usr/share/spamassassin/20_****.cf
debug: config: read file //usr/share/spamassassin/20_ratware.cf
debug: config: read file //usr/share/spamassassin/20 uritests.cf
debug: config: read file //usr/share/spamassassin/23_bayes.cf
debug: config: read file //usr/share/spamassassin/25 body_testses.cf
debug: config: read file //usr/share/spamassassin/25 body_testspl.cf
debug: config: read file //usr/share/spamassassin/25_hashcash.cf
debug: config: read file //usr/share/spamassassin/25 head_testses.cf
debug: config: read file //usr/share/spamassassin/25 head_testspl.cf
debug: config: read file //usr/share/spamassassin/25_spf.cf
debug: config: read file //usr/share/spamassassin/25_uribl.cf
debug: config: read file //usr/share/spamassassin/30 textde.cf
debug: config: read file //usr/share/spamassassin/30 textes.cf
debug: config: read file //usr/share/spamassassin/30 textfr.cf
debug: config: read file //usr/share/spamassassin/30 textit.cf
debug: config: read file //usr/share/spamassassin/30 textnl.cf
debug: config: read file //usr/share/spamassassin/30 textpl.cf
debug: config: read file //usr/share/spamassassin/30 textsk.cf
debug: config: read file //usr/share/spamassassin/50_scores.cf
debug: config: read file //usr/share/spamassassin/60_whitelist.cf
debug: using "//etc/mail/spamassassin" for site rules dir
debug: config: read file //etc/mail/spamassassin/local.cf
debug: using "/Users/admin/.spamassassin" for user state dir
debug: using "/Users/admin/.spamassassin/user_prefs" for user prefs file
debug: config: read file /Users/admin/.spamassassin/user_prefs
debug: plugin: loading Mail::SpamAssassin::Plugin::URIDNSBL from @INC
debug: failed to load Net::DNS::Resolver: Can't locate Net/DNS.pm in @INC (@INC contains: //lib/perl5/site_perl /System/Library/Perl/5.8.6/darwin-thread-multi-2level /System/Library/Perl/5.8.6 /Library/Perl/5.8.6/darwin-thread-multi-2level /Library/Perl/5.8.6 /Library/Perl /Network/Library/Perl/5.8.6/darwin-thread-multi-2level /Network/Library/Perl/5.8.6 /Network/Library/Perl /System/Library/Perl/Extras/5.8.6/darwin-thread-multi-2level /System/Library/Perl/Extras/5.8.6 /Library/Perl/5.8.1) at /System/Library/Perl/Extras/5.8.6/Mail/SpamAssassin/Plugin/URIDNSBL.pm line 113.

debug: plugin: registered Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4)
debug: plugin: loading Mail::SpamAssassin::Plugin::Hashcash from @INC
debug: plugin: registered Mail::SpamAssassin::Plugin::Hashcash=HASH(0x1ac973c)
debug: plugin: loading Mail::SpamAssassin::Plugin::SPF from @INC
debug: plugin: registered Mail::SpamAssassin::Plugin::SPF=HASH(0x1a419d8)
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) implements 'parse_config'
debug: plugin: Mail::SpamAssassin::Plugin::Hashcash=HASH(0x1ac973c) implements 'parse_config'
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) inhibited further callbacks
config: SpamAssassin failed to parse line, skipping: safe_report 0
debug: using "/Users/admin/.spamassassin" for user state dir
debug: bayes: no dbs present, cannot tie DB R/O: /Users/admin/.spamassassin/bayes_toks
debug: Score set 1 chosen.
debug: ---- MIME PARSER START ----
debug: main message type: text/plain
debug: parsing normal part
debug: added part, type: text/plain
debug: ---- MIME PARSER END ----
debug: bayes: no dbs present, cannot tie DB R/O: /Users/admin/.spamassassin/bayes_toks
debug: metadata: X-Spam-Relays-Trusted:
debug: metadata: X-Spam-Relays-Untrusted:
debug: decoding: no encoding detected
debug: Loading languages file...
debug: Language possibly: en,sco
debug: metadata: X-Languages: en sco
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) implements 'parsed_metadata'
debug: is Net::DNS::Resolver available? no
debug: is DNS available? 0
debug: Running tests for priority: 0
debug: running header regexp tests; score so far=0
debug: registering glue method for check hashcash_doublespend (Mail::SpamAssassin::Plugin::Hashcash=HASH(0x1ac973c))
debug: registering glue method for check for_spf_helopass (Mail::SpamAssassin::Plugin::SPF=HASH(0x1a419d8))
debug: all '*From' addrs: ignore@compiling.spamassassin.taint.org
debug: registering glue method for check hashcashvalue (Mail::SpamAssassin::Plugin::Hashcash=HASH(0x1ac973c))
debug: all '*To' addrs:
debug: registering glue method for check for_spfsoftfail (Mail::SpamAssassin::Plugin::SPF=HASH(0x1a419d8))
debug: registering glue method for check for_spfpass (Mail::SpamAssassin::Plugin::SPF=HASH(0x1a419d8))
debug: registering glue method for check for_spf_helosoftfail (Mail::SpamAssassin::Plugin::SPF=HASH(0x1a419d8))
debug: registering glue method for check for_spf_helofail (Mail::SpamAssassin::Plugin::SPF=HASH(0x1a419d8))
debug: running body-text per-line regexp tests; score so far=-2.623
debug: running uri tests; score so far=-2.623
debug: registering glue method for check_uridnsbl (Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4))
debug: Razor2 is not available
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) implements 'check_tick'
debug: running raw-body-text per-line regexp tests; score so far=-2.623
debug: running full-text regexp tests; score so far=-2.623
debug: Razor2 is not available
debug: Current PATH is: /bin:/sbin:/usr/bin:/usr/sbin
debug: Pyzor is not available: pyzor not found
debug: DCCifd is not available: no r/w dccifd socket found.
debug: DCC is not available: no executable dccproc found.
debug: Running tests for priority: 500
debug: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x19242e4) implements 'check postdnsbl'
debug: running meta tests; score so far=-2.623
debug: running header regexp tests; score so far=-1.053
debug: running body-text per-line regexp tests; score so far=-1.053
debug: running uri tests; score so far=-1.053
debug: running raw-body-text per-line regexp tests; score so far=-1.053
debug: running full-text regexp tests; score so far=-1.053
debug: Running tests for priority: 1000
debug: running meta tests; score so far=-1.053
debug: running header regexp tests; score so far=-1.053
debug: using "/Users/admin/.spamassassin" for user state dir
debug: lock: 16898 created /Users/admin/.spamassassin/auto-whitelist.lock.serv3.aaaaaaaaaaaa.com.16898
debug: lock: 16898 trying to get lock on /Users/admin/.spamassassin/auto-whitelist with 0 retries
debug: lock: 16898 link to /Users/admin/.spamassassin/auto-whitelist.lock: link ok
debug: Tie-ing to DB file R/W in /Users/admin/.spamassassin/auto-whitelist
debug: auto-whitelist (db-based): ignore@compiling.spamassassin.taint.org|ip=none scores 0/0
debug: AWL active, pre-score: -1.053, autolearn score: -1.053, mean: undef, IP: undef
debug: DB addr list: untie-ing and unlocking.
debug: DB addr list: file locked, breaking lock.
debug: unlock: 16898 unlink /Users/admin/.spamassassin/auto-whitelist.lock
debug: Post AWL score: -1.053
debug: running body-text per-line regexp tests; score so far=-1.053
debug: running uri tests; score so far=-1.053
debug: running raw-body-text per-line regexp tests; score so far=-1.053
debug: running full-text regexp tests; score so far=-1.053
debug: is spam? score=-1.053 required=8
debug: tests=ALL TRUSTED,MISSING_DATE,MISSING_SUBJECT,NO_REALNAME
debug: subtests= _HAS_MSGID,__MSGID_OK_DIGITS,__MSGID_OK_HOST,__SANE_MSGID,__UNUSABLEMSGID
lint: 1 issues detected. please rerun with debug enabled for more information.
serv3:/etc/mail/spamassassin root#



Jun 26, 2006 4:07 PM in response to Dave Walcott

I too am using 10.4.6 and I didn't edit any configuration files. You can tell it's working by running spamassassin -tD < filename where filename is an email message. If you look through that big long list, you'll see stuff like this:

[20915] dbg: razor2: part=0 engine=4 contested=0 confidence=0
[20915] dbg: razor2: part=0 engine=8 contested=0 confidence=0
[20915] dbg: razor2: results: spam? 0
[20915] dbg: razor2: results: engine 8, highest cf score: 0
[20915] dbg: razor2: results: engine 4, highest cf score: 0

Or if a message matches something in the razor2 database, you'll see this in the final report at the bottom:

* 0.5 RAZOR2_CHECK Listed in Razor2 ( http://razor.sf.net/)

Sometimes it might make a couple hits in the razor2 database and put on more than just 0.5 points.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

SpamAssassin & Razor how-to

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.