Tag Archives: procmail

Installing Spamassassin for filtering Spam

Note: This document is only for per-user configuration of spamassassin

Configuration: RedHat Linux 7.2, Sendmail 8.12.6, procmail 3.21, SpamAssassin 2.43 ( and you will have to be connected to the internet)

Installing the prerequisites:
Spam assassin depends on other perl modules. The complete SpamAssassin package along with its dependent modules can be installed using CPAN:
as root:
# perl -MCPAN -e shell
install Mail::SpamAssassin
quit

If CPAN has been configured properly, this should be a successfull install. SpamAssassin is now installed in /usr/bin/SpamAssassin.

We would be using procmail to filter messages. Due to sendmail’s security feature, we would have to create a symlink to procmail in the director /usr/adm/sm.bin
# cd /usr/adm/sm.bin
# ln -s /usr/bin/procmail ./procmail
( sendmail executes the programs, only when they are symlinked to, in /usr/admin/sm.bin)

Configuring SpamAssassin ( for user, say, ram)
1) Make sure that your home root directory ( /home) and your home directory ( /home/ram) is not group writable.
2) create a file in your home directory, ~ram/.forward, and add the follwing to it:
“|/usr/bin/procmail -f- #ram”

3) now, this ~ram/.forward file should have permission of 700
4) create a file called spams in your home directory
5) create file, ~ram/.procmailrc with the following content:
:0fw
| /usr/bin/spamassassin
:0
* ^^rom[ ]
{
LOG=”*** Dropped F off From_ header! Fixing up. ”

:0 fhw
| sed -e ‘1s/^/F/’
}

( Here, we are processing the incoming mail using SpamAssassin, and if the mail is marked by SpamAssassin as a spam, we move it to a file called spams. The third rule is a workaround for a bug in procmail 3.21)

6) Send a test mail to yourself. you should now see the following in your mail header:
X-Spam-Status: No, hits=2.6 required=5.0
tests=FROM_AND_TO_SAME_1,NO_REAL_NAME,SPAM_PHRASE_00_01
version=2.43
X-Spam-Level: **
X-UIDL: 5,@!!fXk!!`Cm”!6?l”!M

7) You can now configure your mail client to parse the headers and check for X-spam-Status = Yes, throw into a seperate folder , or use procmail to do it, by adding:
:0:
* ^X-Spam-Status: Yes
spams
as your second rule.