SpamAssassin

SpamAssassin is an open source application designed to check email messages for spam. It can be configured to check spam on a per-user or site-wide basis. Spamassassin has the option to mark messages that it thinks are spam, either in the headers, so that it can be filtered by MUA's, or also in the Subject: field. SpamAssassin should be invoked by procmail.

Test your SpamAssassin
If you have access to your mail server, you can test its configuration. In this example, your mailbox is stored in /var/spool/mail/root: cat /var/spool/mail/root | spamassassin | less This shows you what your spamassassin leaves over from your mailbox, without modifying the mailbox anyhow.

Configure your SpamAssassin
The easiest way to configure your SpamAssassin is to use webmin which has a SpamAssassin configuration module.

Features
''Extracted from Spamassassin web site:


 * Wide-spectrum: SpamAssassin uses a wide variety of local and network tests to identify spam signatures. This makes it harder for spammers to identify one aspect which they can craft their messages to work around.
 * Free software: it is distributed under the same terms and conditions as other popular open-source software packages such as the Apache web server.''
 * Easy to extend: Anti-spam tests and configuration are stored in plain text, making it easy to configure and add new rules.
 * Flexible: SpamAssassin encapsulates its logic in a well-designed, abstract API so it can be integrated anywhere in the email stream. The Mail::SpamAssassin classes can be used on a wide variety of email systems including procmail, sendmail, Postfix, qmail, and many others.
 * Easy Configuration: SpamAssassin requires very little configuration; you do not need to continually update it with details of your mail accounts, mailing list memberships, etc. Once classified, site and user-specific policies can then be applied against spam. Policies can be applied on both mail servers and later using the user's own mail user-agent application.