SpamAssassin has two modes of operation. In one mode, each user launches the 'spamassassin' executable to filter each incoming message. For low volume servers, or servers where there is no system-side SpamAssassin install, this works just fine. The second mode involves using a server-client model to optimize use of system resources. We use this second model. As such your procmail rule should use the 'spamc' client as the filter for your mail. For example: # The lock file ensures that only 1 spamassassin invocation happens # at 1 time, to keep the load down. # :0fw: spamassassin.lock * < 256000 | spamc You'll also need a '.spamassassin' folder in your home directory for storage of bayesian filter data, as well as your 'user_prefs' personal configuration file. Once this is setup, incoming spam is marked with appropriate headers. The following rule puts messages marked as spam in your 'spam' folder. # All mail tagged as spam (eg. with a score higher than the set threshold) # is moved to "spam". :0 * ^X-Spam-Status: Yes spam Note that the original message will be put in a MIME attachment with an explanation of why it was marked as spam. If you would prefer the original message remain untouched, you should set the following option in your '.spamassassin/user_prefs' file: report_safe 0 As messages arrive that are spam but aren't flagged as such, save them to the spam folder. Similarly, items that aren't spam should be moved to a regular folder. Once you have several spam and non-spam messages that were incorrectly flagged, you can train your bayesian filter using the following commands. For spam: $ /usr/bin/sa-learn --showdots --mbox --spam ~/mail/spam For non-spam (ham): $ /usr/bin/sa-learn --showdots --mbox --ham ~/mail/inbox It helps to make aliases so you can periodically train your filters: alias spammail='/usr/bin/sa-learn --showdots --mbox --spam ~/mail/spam; rm -f ~/mail/spam; touch ~/mail/spam;' alias hammail='/usr/bin/sa-learn --showdots --mbox --spam ~/mail/inbox;' And that is how to use SpamAssassin as installed on coglib.