Organizing Mailing List messages with Evolution

This article deals with the various methods that can be used in order to achieve more effective and productive management of email messages which originate from mailing lists.

I am subscribed to several mailing lists. All of them are related to Linux user groups, Fedora or the development of a project, for which I need to have 0-day information. Although most of them are low-traffic lists, the messages keep filling my inbox, so, from time to time, I spend some time evaluating the current email organisation and maintenance scheme and decide if it is required to make any modifications. This article deals with the various methods that can be used in order to achieve more effective and productive management of email messages which originate from mailing lists.

First of all, I should say that I use Evolution as an email/news and time management application and that all the following information was written with the Evolution features in mind. This is not restrictive as the same functionality exists in numenous other similar applications.

A separate directory for each list

Until today, all the mailing list-oriented messages were filtered and each one was placed in a mailing list-specific directory. This method requires to have as many directories and filter as the number of the mailing list subscriptions. So, the greater the number of the subscriptions the greater the number of the filters and of the subdirectories. The following outlines the directory structure:

* Inbox
* .
* Mailing Lists
    - List1
    - List2
    - List3
* .
* Sent
* Trash

The message filter format was like:

    the SPECIFIC HEADER List-Post contains list1-post@address
    MOVE the message to the Mailing Lists/List1 directory

This way all the list-oriented messages are cleanly organised in subdirectories. This method serves well, but, when the number of the subscriptions changes often, it becomes a bit tiring to continuously create/remove list-specific filters and subdirectories.

One directory for all list messages

Today, I decided to implement a new scheme for the mailing list messages. According to this new method, all the list-oriented emails are kept in the same directory.

For example:

* Inbox
* .
* Mailing Lists
* .
* Sent
* Trash

The only filter that is required for this is one like the following:

    the SPECIFIC HEADER List-Post exists
    MOVE the message to the Mailing Lists directory

Note that I have switched schemes as an experiment. I do not know yet if it will prove more effective than the previous one. The pros of this method are that it relieves the user from having to create separate filters or subdirectories or remove old ones whenever the user subscribes/unsubscribes to/from mailing lists.

One could say that having emails from various mailing lists mixed together in the same directory might be confusing, but this is not necessarily true. Almost all respectful email clients have a feature called “Group By Threads“. At least, this is how it is called in Evolution. This setting can be enabled on a per-directory basis. Having it enabled for the Mailing Lists directory will make things more straight forward when following conversations. Of course, this feature was a “must have” even when the method described in the previous section was used. Go nowhere without enabling it for mailing list messages.

Message Maintenance

Despite the low traffic of most of the mailing lists I am subscribed to, the inbox keeps growing bigger and bigger. Provided that the majority of the Linux related lists are based on the mailman, which provides public access to the list archives, I see no point in keeping old list messages locally for long periods of time. Even if performing searches on the list messages that are stored locally is an everyday task, I guess that the email client’s search functionality can be effectively substituted by searching the list archives with google:

kernel site:

By using the example above, someone could search the LGU mailing list for messages that contain the word kernel. More effective searches can be achieved by using the advanced search form or by using the Google Groups search facility.

So, to sum it up, the million-dollar question is “How to perform automatic message maintenance in Evolution“?

It is a fact and also a dissappointment that Evolution (v2.8.3 at the time of writing) does not have such functionality, but there are one or two tricks to delete those old messages in a semi-automatic way.

Using a filter

The first one would be to create an incoming message filter, which would be placed above all other filters that mess with messages from mailing lists. The filter would delete all messages that are older than 10 days ago (this is an example):

    the DATE RECEIVED is before 10 days ago (a time relative to the current time)
    DELETE the message

As there will never be any incoming message, for which the date it is received by Evolution is 10 days in the past, this rule will never delete any incoming message. Messages will be deleted, only if all the messages in a directory are selected (Ctrl-A) and the filters are applied on them (Ctrl-Y). Actually, it will be required to “Expunge” the directory afterwards to permanently delete those messages.

The filter will do the job well, but, as it requires the manual selection of messages, it will not be the ideal solution if you use the first method of organising the list messages (one directory per list).

Using a search folder

A search folder in Evolution is a virtual directory that contains the results of a search. From the feature list:

Search Folders are saved intelligent searches which can display groups of email according to user-specified criteria. Create Search Folders to combine mail from different mail accounts into a single view, quickly view all mail from your boss (or a particular friend :) — and new in 2.0, optional include entire threads in the results!

So, this feature can be an invaluable assistant in the gathering of the old mailing list messages. An example search folder that contains list messages received before 10 days ago would be:

Set the INCLUDE THREADS option to None
SEARCH the directory: Mailing Lists
    DATE RECEIVED is before 10 days ago (a time relative to the current time)

The contents of the directory are updated every time you select it. All you have to do in order to delete the old messages is to select them all (Ctrl-A) and delete them (Ctrl-D). Again, note that it will be required to “Expunge” the directory to permanently delete those messages.

The advantage of the search folder is that it can search for messages in various directories, so it can be effectively used even if you keep the list messages in list-specific directories, without the need of creating directory specific search folders. Also, it gives the opportunity to inspect those old messages before deleting them.

I highly recommend using this feature instead of the filter.


The quest for the best method to organise and manage emails never ends. A decent email client is required if you want to get serious with email management. I happen to like Evolution, but there are many other good applications out there.

Do not blindly follow the methods described in this document, as you might delete valuable emails. If you have any suggestions I would be more than happy to read about them.

Organizing Mailing List messages with Evolution by George Notaras is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Copyright © 2007 - Some Rights Reserved

George Notaras avatar

About George Notaras

George Notaras is the editor of the G-Loaded Journal, a technical blog about Free and Open-Source Software. George, among other things, is an enthusiast self-taught GNU/Linux system administrator. He has created this web site to share the IT knowledge and experience he has gained over the years with other people. George primarily uses CentOS and Fedora. He has also developed some open-source software projects in his spare time.