See UsedViaProcmail for a quick introduction.
more complex discussion
Many people used procmail rules to filter out spam long before they ever heard of SpamAssassin. Those rules are all-or-nothing – perhaps it would be better to convert them to "soft" SpamAssassin rules (rules that merely add a small amount to the score). See WritingRules.
A few people convert "all-or-nothing" SpamAssassin rules (most people mark these by giving them a score of "1000") to procmail rules, to help reduce CPU time.
(EditHint: I just made up the "all-or-nothing" and "soft" terms. What do you call them ?)
In the example
http://spamassassin.org/dist/procmailrc.example
I don't understand the condition in the stanza starting with
# Work around procmail bug: any output on stderr will cause the "F" in "From" # to be dropped. This will re-add it. :0 * ^^rom[ ]
. Shouldn't there be only a single caret (^) there to find the beginning-of-line ?
– DavidCary No – check the man page for procmailrc.