SpamAssassin is a common and free antispam method that is comprehensively described by this book. McDonald is writing for a sysadmin who wants an effective method to halt spam. To be sure, he cautions that SA is not 100% effective. He gives concise explanations of how to install and run it.
The most recent version surveyed here is 3.0. And there is one key innovation in it, and also in the earlier 2.63 version. Namely what it calls SURBL = Spam URI Real time Blacklist. A powerful idea. You block a message as spam, if its body has URIs in an SURBL. It should be said that it took the SA coders a long time to recognise and implement this idea.
Another issue is how to generate an SURBL. Here, the author just says that you can get these from external sources, like Spamhaus, just like you would for an RBL. More discussion here might have been helpful.
There is little recognition in the book that the SURBL method has significant advantages over a Bayesian, the latter of which gets extensive coverage. The SUBRL method is faster in extracting URIs from a message body and then comparing against the SURBL, than in comparing the message's words to the corpus of the Bayesian. All the more so if the latter word comparision is restricted to words that are not in HTML tags and are visible to the reader.
Also, if the SUBRL has domains that are definitely considered to be spammer domains, then using it is deterministic. Unlike the stochastic general nature of SA's approach, which totes up a spam likelihood score. The deterministic aspect is far stronger.
Plus, there is no need for regular manual training, as with the Bayesian - either at the user or sysadmin level. But a casual reader will miss all this. The SURBL is given minimal description.