Next Previous Contents

12. Filtering Messages

Written by Nick Selby (sylpheed@nickselby.com)

12.1 Filtering Messages

Sylpheed provides powerful filters to allow users to automatically pre-sort incoming mail based on a set of rules that the user defines. As a most simple example, let's say you work at the Acme Grommet Company, and you want all e-mail from your co-workers to be placed in one mailbox. To accomplish this, you would set up a filter that would place all mail whose "From" header includes the phrase "acmegrommet.com" into a specific mailbox.

Sylpheed allows you much more control than just that simple setup; you may create filters based on several variables, including an "If this AND that" or "If the message contains this OR does NOT contain that" etc. It's very cool.

Finding The Filter Setting Dialog

The filter settings dialog is located in the Configuration menu, under the title "Filter Setting". You may also use establish a keyboard shortcut (see Keyboard Shortcuts).

Setting Up Filters

Operator(s) and Processing instructions combine to create a Filter Rule.

* Operators The dialog's first setting option establishes the Operator, the variable that will tell the filter what specific text to look for to trigger a filter. Each Filter Rule may have up to two operator sets.

Each Operator variable contains three sections: Header, Keyword and Predicate.

Header is a drop-down box which defines in which message header Sylpheed's filter will search. Choices range from Subject to X-Mailer.

Keyword is a a text box in which you may enter the text for which the filter will search.

Predicate allows you to choose to filter based on whether the operator contains, or does not contain, the text you enter in the Keyword field.

Example: Create an Operator in which the X-Mailer field of an incoming message contains the word 'Eudora'.

The second Operator setting, which is set identically to the first, also allows the user to select an AND/OR setting declaring the relationship between the two operators.

Example: Create an Operator set which will process mail with a "From" header of bob@acmegrommet.com AND a subject of "2001 Spring Grommet Collection"

Message Processing

Once you've established the Operator(s) that will define which messages will be processed, it's time to tell Sylpheed what to do with messages that match the operator(s). You may choose between two radio button-selected settings: "Destination" and "Don't Receive".

Selecting "Destinations" will enable you to route the mail into a mailbox which you specify.

Selecting "Don't Receive" will instruct Sylpheed to not download messages with that operator. Note that with "Don't Receive", Sylpheed merely leaves the message on your mailserver - it does not delete it.

To specify a mailbox to which you want the message transfered, click on the radio button to the left of the word "Destination" in the dialog. (Currently, in order to specify a mailbox you must have created that mailbox prior to activating the Filter Setting dialog.) Clicking the "Select" button will open a pop-up window containing all mail folders currently active in your copy of Sylpheed. Select the mailbox you wish by either (a) double clicking on the mail folder name or (b) clicking the mail folder name and then clicking "OK".

To specify that the message not be retrieved, and left on your mail server, click the radio button to the left of the words "Don't Receive".

Filter Registration

Now that you have set the Operator and the Processing Rule, all that's left to do is tell Sylpheed to save the entire Filter Rule. If you skip this step, the filter won't work.

The "Register Rules" configuration has three options: "Register", "Substitute" and "Delete".

Example of Registering A Filter Rule: Create a Filter Rule that moves all mail with the subject of "Sylpheed Manual" into the (previously created) mail folder "Sylpheed Manual Mail". Example of Substituting A Filter Rule: Modify a previously created Filter Rule that moves all mail with the subject of "Sylpheed Manual" to sort mail not to the mail folder "Sylpheed Manual Mail" but rather the mail folder "Sylpheed Questions" Example of Deleting a Filter Rule: Remove the previously created Filter Rule which refers to Subject:Sylpheed Questions.

Registered Rule Order

One caveat about all this: the order in which Filter Rules are created could adversely affect your intended message sorting, and one needs to consider this when creating or updating Filter Rules.

For example, a Filter Rule saying, "Move anything containing 'ABC' to Mailbox X" listed above another Filter Rule saying "Move anything containing 'ABCDEF' to Mailbox Y" will cause the latter of these filters not to process.

Think about the way Sylpheed goes down its list: first, it would say.."Hmm, any messages with ABC? Ah, there's one! Move it." Then it would think, "Okay, any messages with ABCDEF?" To which the answer would be "no" - that ABCDEF was already filtered because it contained "ABC".

Bummer.

In order to avoid this, you must ensure that the more complex Filter Rule is processed first, by placing it higher than a similar, conflicting Filter Rule.

To move a Registered Rule higher or lower within the Registered Rule box, select the rule you would like to move, and click on the "Up" or "Down" buttons. This will "move" the rule up or down, above or below a potentially conflicting Filter Rule.

12.2 How to Filter Messages

Filtering messages can be done in several ways:

Please note that, at time of writing, Sylpheed does -NOT YET- has filtering of IMAP messages enabled.

12.3 Filtering mail with Procmail

If you feel that Sylpheed has not enough options to perform filtering for you, then you can look at Sylpheed Claws which has more options for filtering. You can find the Claws version (the cutting edge, experimental version of Sylpheed) sylpheed-claws.sourceforge.net.

Another option, if you do not want to work with an experimental version of Sylpheed, is Procmail. Procmail is a powerful mail filtering program that is triggered from the Mail Transport Agent (i.e. Sendmail, Postfix, Qmail). Procmail is called by default from these programs after receiving e-mail.

The trick to procmail is to tell it that mail has to be filtered into MH mail folders. This is not difficult though.

Normally procmail moves mail into MBOX format, this is one large file containing all mails in a folder. MH uses separate files for each e-mail. All you need to do is point the destination of a procmail rule to <destination folder>/. It is the "slash dot" that does the trick.


Next Previous Contents