Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I just wonder what their pros and cons are, and which is better for production use. Thanks~


migration rejected from May 19 '15 at 7:04

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as primarily opinion-based by Sven May 19 '15 at 7:04

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

Firstly, you should expect to be dealing with well over 99% of spam before you get to the last ditch effort of heavy weight content processing. Checking sender domains, RBL checks, SMTP pipelining checks, and probably greylisting should all come before bayesian analysis or spamassassin.

I don't like spamassassin mostly because it doesn't give me enough flexibility to reject on the basis of light-weight checks without doing the heavy-weight ones at all. I regard it as only suitable for domains with light use (seconds per email rather than emails per second).

The dspam engine is quite good, but the supporting CGI program was pretty poor when I last looked (which was a few years back now). But maybe someone has taken on the task of finishing that off? It was a decent project, but looked like the author ran out of steam. In my experience dspam does very well initially, but significantly degrades with over-training.

I've tried bogofilter, some time before moving to dpsam. I forget the details, as i tried quite a few of them. I did like dspam better, but it was a few years back, and things may have changed.

One thing that's really important, is that doing a two way split between spam and non-spam is a bad strategy. You want an unsure category. The threshold for marking something as spam should be such that you should not need to go looking through it just in case it got something wrong. If you do, then what's the point? Spam-chasing becomes a hobby/time-waster rather than a way to get time back from spam. You should only be reviewing and training on the 'unsure' category. (If you do find errors in the other categories, train on them, but don't go looking for them).

Spambayes is another good one. Like bogofilter though, it's terms are single words. Engines which use word sequences like dspam does can do significantly better. (I'm not sure, but I suspect they're also more prone to over-training.)


I used to run Spamassassin and moved away from it. In my experience its problems are:

  • Extremely high memory requirement - it was using over 40MB per process which isn't great on a low-memory (512MB at the time) VPS. This overhead was probably mainly Perl, and probably highly sharable memory, but still.

  • Default scores do not reject much mail, needs a lot of manual tuning. So many of Spamassassin's manual spam scores were too conservative to block very much of the spam I was getting. I found myself constantly buffing the scores for individual rules to tip specific spam messages over my threshold. The default scores for the Bayes component pretty much cripple its usefulness; a well trained Bayes database on its own will never come close to being able to mark something as spam without many custom rule hits, which seem to be written for last years' spam, also firing at the same time.

I've since been trying bogofilter but I've run up against some of its limitations:

  • It doesn't have its own SMTP proxy or milter mode, so you can't really use it as a filter within Postfix on its own like you can with, say, Spamassassin. However, you can integrate it into proxsmtp which can then allow you to use it as an SMTP proxy and even, should you choose, as a before-queue filter.
If you search for 'bogofilter milter' you'll find a bunch of solutions. I have no experience with them though. – mc0e Jun 27 '13 at 16:14
I have since found a solution in proxsmtp. – thomasrutter Jun 28 '13 at 3:13
Bogofilter integrates well with Evolution in Ubuntu. – rleir Feb 4 '14 at 13:29

Not the answer you're looking for? Browse other questions tagged or ask your own question.