Configuring your system involves two steps:

  1. Set up filtering

    If you don't use filtering yet, you need to set up filtering in general. The filtering software needs to be able to pipe messages through a set of filters that read from stdin and write to stdout. I use the excellent procmail package but there are other solutions, e.g. Kmail mail client.

    Have a look at my procmail configuration as an example how to set it up.

  2. Enable & configure the Bunny filter

    You need to configure a few things to enable and set up the bunny filter itself. You need to set the following:

    • The mail server to be used for sending requests for confirmation.
    • The mail address to appear as the sender of requests for confirmation.
    • The pending mailbox to store pending messages. It must exist.
    • The directory to store the text of the requests for confirmation and the white- and blacklists.
    You can set every one of these either with environment variables (BUNNY_SERVER, BUNNY_FROM, BUNNY_BOX, respectively BUNNY_DIR) or command-line parameters (see the comments at the top of the script).

    The rc.bunny recipe provides an example that uses the command-line option to set the sender's address depending on which address the original mail was sent to and environment variables for everything else.

Optionally, you can change the text in the request for confirmation that the Bunny will send by editing the request.txt which resides in $BUNNY_DIR.

That's all. You can keep an eye on the activities of the various filters by monitoring procmail's log using tail -f ~/.procmail/log (or wherever you put your log file).

Filtering example, my setup

Figure 1 depicts my filtering setup: The .procmailrc file comprises the general configuration variables before including an rc file for each filter.

  1. First, I filter out all solicited, bulk e-mails such as mailing lists. Feel free to have a look at my (current) set of lists in rc.lists.

    Filtering out mailing lists before anything else is generally a smart idea: Most mailing lists are (and definately should be!) configured to filter spam and disallow big attachments. Not piping these messages through your local filters speeds up processing.

  2. Next, the Bunny filters out spam by allowing only known/trusted addresses into my inboxes and implementing an automatic way for people to become known/trusted. Have a look at my rc.bunny recipe.

  3. The "bounder" filter then strips out attachments replacing them with URL's to files. This way, my mailboxes remain a reasonable size and on average I don't want over 95% of the attachments anyway so it makes removing them much easier as well. See the rc.bounder recipe.

  4. Finally, the rc.accounts delivers the messages to the appropriate inbox.

Figure 1: Procmail configuration

If you for some reason decide to also pipe mailing list messages through the Bunny filter, please make sure to manually include the mailing lists you're subscribed to in your white list! You don't want to send a request for confirmations in response to every single posting on every single mailing lists you're subscribed to. Let me say it again, in case you dozed off earlier: Be sure to include the addresses of those mailing lists in your whitelist if you decide to pipe those messages through the Bunny!

Free web graphics made by Matthew Peters

Coalition Against Unsolicited Commercial E-mail

European Coalition Against Unsolicited Commercial E-mail