Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: [Original edit by MikeBrown] updated procmailrc code and links; added more procmailrc advice, encouraging consideration of whether to leave some mail unscanned


It's worth noting that a lot of MTAs already use procmail as the default MDA (mail delivery agent), so setting up a .forward file is likely not necessary. For instance, in postfix's

No Format
mailbox_command = /usr/bin/procmail -a "$EXTENSION"


Now, edit or create a .procmailrc file in your home directory containing the below following lines, which come from the procmailrc.example.

No Format
# SpamAssassin sample procmailrc
# ==============================

# Pipe the mail through spamassassin (replace 'spamassassin' with 'spamc'
# if you use the spamc/spamd combination)
# The condition line ensures that only messages smaller than 250500 kB
# (250500 * 1024 = 256000512000 bytes) are processed by SpamAssassin. Most spam
# isn't bigger than a few k and working with big messages can bring
# SpamAssassin to its knees.
# The lock file ensures that only 1 spamassassin invocation happens
# at 1 time, to keep the load down.
:0fw: spamassassin.lock
* < 256000512000
| spamassassin

# Mails with a score of 15 or higher are almost certainly spam (with 0.05%
# false positives according to rules/STATISTICS.txt). Let's put them in a
# different mbox. (This one is optional.)
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

# All mail tagged as spam (eg. with a score higher than the set threshold)
# is moved to "probably-spam".
* ^X-Spam-Status: Yes

# Work around procmail bug: any output on stderr will cause the "F" in "From"
# to be dropped.  This will re-add it.
# NOTE: This is probably NOT needed in recent versions of procmail
* ^^rom[ ]
  LOG="*** Dropped F off From_ header! Fixing up. "
  :0 fhw
  | sed -e '1s/^/F/'

If you already have a .procmailrc file, add the above lines to it.

To minimize the chance of false positives, especially if you are using Bayes training, you may want to put these rules after any other rules which handle mail you don't want scanned, such as legitimate administrative and mailing list traffic. Alternatively, you may want to scan all mail but tweak your rules so that administrative and mailing list messages have to meet a higher threshold (X-Spam-Level) before they are treated as spam. There are pros and cons to each option.

.procmailrc file. If you don't currently have a procmail .procmailrc file, you can import that one by enteringuse the procmailrc.example file from the Spamassassin docs directory, or import the current sample by entering, for example:

No Format
wget http
mv procmailrc.example .procmailrc


Read 'man procmailrc' and 'man procmailex' for further details and explanation.