Let’s take a look at SpamAssassin—the Swiss army knife of spam detection. Spam is unwanted or unsolicited email that is sometimes malicious. Spam filters were created to be one of the easiest ways of detecting and blocking this kind of unwelcome communication, and SpamAssassin is one of the most effective email spam filters.
SpamAssassin works with most systems. It was written in Perl and It can be customized using content-matching rules, spam databases, text analysis and Bayesian filtering. It’s very easy to extend and improve, because it’s constantly learning from the information you give to it. (You could say it feeds on spam, and spam makes it smarter!)
SpamAssassin adjusts its rules as it learns from the spam it receives, so it’s always working to keep itself up to date.
If you need it to block certain email accounts too, then it’s perfectly happy to do that. And why would you want to do that? Well, you might need to block someone who is problematic, or you might want to avoid receiving certain file formats.
So, every time you receive an email, SpamAssassin puts it through a number of tests. It’s looking for various indicators, like certain words in the header or bad HTML in the message body. There are all kinds of things that suggest that the message could be spam, so it consults various spam databases to make most of its decisions. However, it’s also flexible enough to let you disable certain tests and roles or add new ones.