Retrieving Emails From Remote Servers With getmail (Debian Etch) - Page 2

4 Integrating SpamAssassin Into getmail

If you'd like getmail to invoke SpamAssassin, you can do it as follows:

First we must install SpamAssassin. As root, we run

apt-get install spamassassin spamc

Then we must configure SpamAssassin. This can be done in the file /etc/mail/spamassassin/ A valid file could look like this:

vi /etc/mail/spamassassin/

rewrite_header Subject *****SPAM*****

required_score 5.0

use_bayes 1
bayes_auto_learn 1
bayes_ignore_header X-Bogosity
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status
bayes_ignore_header X-getmail-filter-classifier

(The comments in /etc/mail/spamassassin/ will tell you more about the above settings.)

If you enable Bayes (use_bayes 1), it is important that you put the line

bayes_ignore_header X-getmail-filter-classifier

into /etc/mail/spamassassin/ so that Bayes ignores headers added by getmail.

Finally we must enable the SpamAssassin daemon by setting ENABLED to 1 in /etc/default/spamassassin:

vi /etc/default/spamassassin


Then we start the SpamAssassin daemon:

/etc/init.d/spamassassin start

Now log in as falko again on the command line and open ~/.getmail/getmailrc and add the following [filter] section:

vi ~/.getmail/getmailrc


type = Filter_external
path = /usr/bin/spamc
arguments = ("-s 250000", )

(If this is not your first [filter] section, you must rename the first [filter] section to [filter-1], the second one to [filter-2], and so on.)

That's it. SpamAssassin is now integrated into getmail.


5 Integrating ClamAV

ClamAV is a project that publishes new releases very often, and once a new release is published, old versions will print out warnings. Therefore we must make sure that we install the latest ClamAV release by adding the following line to /etc/apt/sources.list (as root):

vi /etc/apt/sources.list

deb etch/volatile main contrib non-free

Afterwards we update our packages database:

apt-get update

(- if you get GPG warnings, you can ignore them -)

and install ClamAV:

apt-get install clamav clamav-base clamav-daemon clamav-freshclam

Then log in as the user falko again and edit ~/.getmail/getmailrc. If you want getmail to delete virus emails, add the following filter:

vi ~/.getmail/getmailrc


# Drop infected messages
type = Filter_classifier
path = /usr/bin/clamdscan
arguments = ("--stdout", "--no-summary", "-")
exitcodes_drop = (1, )

If you want getmail to deliver infected messages, add the following filter instead:

vi ~/.getmail/getmailrc


# Keep infected messages
type = Filter_classifier
path = /usr/bin/clamddscan
arguments = ("--stdout", "--no-summary", "-")
exitcodes_keep = (0,1)

Again, keep in mind what I said about multiple [filter] sections in the previous chapter:

If this is not your first [filter] section, you must rename the first [filter] section to [filter-1], the second one to [filter-2], and so on.

That's it for the ClamAV integration.

Falko Timme

About Falko Timme

Falko Timme is an experienced Linux administrator and founder of Timme Hosting, a leading nginx business hosting company in Germany. He is one of the most active authors on HowtoForge since 2005 and one of the core developers of ISPConfig since 2000. He has also contributed to the O'Reilly book "Linux System Administration".

Share this page:

Suggested articles

0 Comment(s)

Add comment


By: Falko Timme