I used to use FastMail for all my e-mail, and their SpamAssassin+ClamAV system is simply excellent at filtering spam. The only false positives I ever get are from the occasional mailing list post that resembles spam, or legitimate promotional e-mail for shopping sites that also resemble spam. FastMail uses just about every test SA has, including DNS blacklists and Bayes tests.
I recently decided that, for a few more dollars a month, I could get an account with Dreamhost, and have a practically identical (from my view) e-mail system, plus a lot more. So I signed up and migrated all of my IMAP mail. Then I discovered that the DH mail servers are using an old version of SpamAssassin; no, not 3.0.3, it’s 2.20; 3.0.3 is installed on the other servers, but is not run if you execute “spamassassin” from your ~/.procmailrc file. SA 2.20 does a horrible job of catching spam compared to 3.x–at least, the way DH has it configured. So I decided to install SA on my DH account.
Well, I did, and all is well, except for a few things. With the way DH has things clustered, and the fact that the mail servers use a different version of SA, it results in this error, for one:
warn: dns: Net::DNS version is 0.19, but need 0.34 at /home/username/share/perl/5.8.4/Mail/SpamAssassin/Dns.pm line 589.
I spent quite some time installing CPAN modules to my home folder, but it seems like SA is running the version installed on the mail server, which I think is running Woody, instead of using the version from my home folder, even though I’m executing /home/username/bin/spamassassin. I’ve tried exporting…
PERLLIB=/home/username/lib/perl/5.8.4:/home/username/share/perl/5.8.4
and
PERLLIB=/home/.enoch/username/lib/perl/5.8.4:/home/.enoch/username/share/perl/5.8.4
…and tried putting those in ~/.procmailrc, but it keeps looking for those Perl modules on the mail server (I think that’s what it’s doing).
The result is that none of the tests that use DNS blacklists work, including the URIBL tests and SpamCop tests, which catch a lot of spams that would not otherwise be caught; I’m talking increasing a score from 0.5 to 17.5.
But the weird part is, if I SSH in to my account and run “~/bin/spamassassin -td ~/Maildir/…” on the same message, all of the tests work, including the DNS tests, and the e-mail is correctly scored as spam. I don’t understand it; if I run a command in a shell and it works, shouldn’t it do exactly the same thing if run by procmail from the same executable file in my account?
This is really frustrating; I’m so close, but it’s like I just can’t get the last six inches. As a result, SA is useless for me on DH; completely useless. It catches about 5% of spam, the rest is scored around 0.5-1. Maybe the Bayes tests will work once I’ve trained enough spam and ham, but the DNS tests work great, and I’d really like to use them.
Any help? DH said they plan to upgrade their mail servers to Sarge in a few months, but that’s a few months from now. 