Evolution 2.0

It’s finally here! Evolution 2.0 is the much anticipated upgrade to Ximian’s premere email/groupware program. Jorge Castro takes us through the entire thing. Grab a nice hot mug of tea, and kick back and enjoy this article.



One of the most user-visible changes in GNOME 2.8 is the inclusion of Evolution 2.0 mail user agent in the base desktop. While many distributors already include Evolution as part of GNOME, this is the first time that Evolution will ship alongside the GNOME Desktop and Developer Platform officially. While users will probably not notice the significance of this right away, it is a good first step to a truly integrated desktop. This will allow for what normally would be stand-alone applications to communicate information to the user in new ways. Another side benefit is that it will now have the same release schedule as the rest of the desktop, as well as inherit the documentation and translation resources that the GNOME community provides.

This release marks an important milestone for Evolution. Early releases were dogged by performance issues, as terms like “killev” and “oaf-slay” became part of the standard vocabulary of users, along with the UI issues that Evolution’s interface “inherited” from Outlook. It was, after all, designed to replace Outlook. So, over two and a half years since Evolution 1.0, a new 2.0 hits the streets. Is it a worthy upgrade? Let’s take a look.

An Overview of Evolution Technology

The typical user will notice one overarching “new feature”, a revamp of the user interface. Though it is the largest visible difference that you will notice right away, the changes themselves are more than skin deep.

Evolution 2.0’s architecture can best be described as two separate parts; the Evolution-Data-Server or E-D-S, and the mail client itself. E-D-S provides an API to interact with the Evolution Mail, Calendar, Contacts, and Task List. Separating the client itself from E-D-S allows other desktop applications to interact with E-D-S directly. This allows applications (like the clock applet) to interact with E-D-S and manipulate all the data that would normally only be accessible through Evolution. This means that other desktop applications, for example GnomeMeeting, will be able to talk to E-D-S and allow it to access the Contacts portion of a user’s data for information. The benefit to end users is that common Contacts, Mail, Calendar, and Tasks information will be shared between applications on the desktop.

Getting Started with Evolution 2.0

When you run Evolution first time, it presents you with a druid in which to input information about your email accounts. Evolution 2.0 will find and migrate any existing data from a previous install. Prior versions of Evolution used the ~/Evolution directory to store settings. This has been moved to a hidden directory, ~/.evolution, which cleans up the user’s home directory.

The druid is short enough to not be very disruptive, but has some good options that you won’t find in Thunderbird or Mozilla Mail. For example, the option to use SSL connections for your accounts immediately. After you’ve inputted your information, Evolution takes you to the mail section immediately, which is the fairly common “three pane” mail view.

The largest visible improvements in Evolution’s interface are mostly concentrated on the left side of the screen. The most obvious change is the removal of the Outlook-esque side bar. The majority of the left side of the screen is instead dedicated to the user folders. The user accounts are separated into their own collapsible sections, with vFolders underneath all of the accounts. Prior versions of Evolution stuck the Calendar, Tasks, and Contacts as folders in this tree view. This concept has been scrapped in favor of a new user interface. Instead of all of the separate functions treated as special folders within the tree view, Evolution 2.0 distinctly separates these tasks. At the bottom left of the screen there are four large buttons that correspond to the four main functions of Evolution. Mail, Contacts, Calendar, and Tasks.

While Evolution is split into Mail, Contacts, Calendar, and Tasks, there are some common things in each view that make using Evolution consistent. Two things reinforce this paradigm. The “component chooser” in the bottom left of the screen, and the search functionality on top of the content area. Regardless of which subcomponent of Evolution you are in, the search area and the component chooser are in the same place. This provides a significant usability gain.


It is probably safe to assume that most people will spend the most amount of time in Evolution reading their mail. Evolution supports more mail interfaces than any other GUI client. IMAP4, POP3, Groupwise, and Usenet are available as remote options, with Exchange supported with the optional plug-in. Evolution also supports Maildir, MH, and mbox-style local mailboxes. The IMAP support has been significantly re-factored; IMAP users will find the improvements in the mail component alone a worthy reason to upgrade. In the past, Evolution’s IMAP support was not very robust, and performed rather terribly when compared to other clients, especially over SSL. I found the new IMAP support reliable and speedy. Text size of mail is adjustable via CTRL-8 and CTRL-9, although I found that it really adjusts the vertical space between lines, and doesn’t affect the actual font size of the mail itself. Support for S/MIME secure email is now included, along with the easy to use GPG/PGP support that has been historically a strong point for Evolution in the past.

The message columns themselves are customizable. By right clicking on a column, you are able to select the field chooser, which let’s you drag and drop new columns into your desired view. Unfortunately, this feature isn’t very discoverable. Thunderbird has a “breadcrumb” type column in its view that makes it more obvious.

Another important new feature to Evolution is the addition of client-side junk filtering. If SpamAssassin is installed, Evolution will launch it in daemon mode and use it as its junk-filtering engine. All mail that is tagged as Junk is moved to the corresponding Junk folder. The toolbar has both a “Junk” and “Not Junk” button to allow for easy training of SpamAssassin. Results with SpamAssassin 2.64 were acceptable, the use of SpamAssassin 3.0pre snapshots, however, made for nearly perfect junk filtering. Unfortunately, there are two places where you can set Junk preferences. There are account-specific settings in the Receiving Options tab, as well as another set of global options in the Mail Preferences->Junk tab. It would probably be best if the Junk options were accessible in one place.

The one down side I found to the Junk filtering is that it is rather slow. Evolution provides a progress meter at the bottom of the interface that shows you the progress of the filtering. With a fair amount of Junk mail in an Inbox, sometimes it takes a good 10-15 seconds for the filter to classify and move the mail to the Junk folder. Although the filter itself is highly accurate (especially after training), I found the filter in Mozilla Thunderbird to be much faster. Obviously, since Evolution uses SpamAssassin as it’s Junk filter, one can hardly pin the performance problems on Evolution itself, but if you rely on client-side Junk filtering as your only means to filter your mail, you might find the performance lacking.


One of the most powerful, and least understood features of Evolution is the concept of vFolders for mail. Virtual Folders, when used properly, allow you to have dynamically changing folders that sort your mail according to certain criteria. This is particularly useful for adding granularity to your existing rules. This sounds complicated, but is an easy concept when you have some examples.

As an example, it is common to create filters that sort by subject, sender, or by mailing list and then file those messages in a certain folder. In this example, I am subscribed to the fedora-development list. While I have my normal rules sorting the entire list to it’s own folder, I have a vFolder that separates out messages from anyone with an email ending in redhat.com. This allows me to quickly scan for all messages from the Red Hat engineers to the fedora-development list. What makes the vFolder concept so useful is that it never moves the mail itself, it just displays it, the original folder is unchanged. I can even have the rule include the parent thread for reference, as in Figure 5, or specifically include only those posting to the list with a redhat.com address.

vFolders can also work “across” folders. This means that I can make a vFolder for a specific person or subject and have them grouped together. As you can see here, in this example, I’ve made a vFolder that I call Nautilus. This vFolder takes any email I have with “nautilus” in the subject and shows them all together, regardless of which real folder the mail is actually in. This allows me to keep track of people that are specifically talking about Nautilus, even across lists or folders.

As you can see, vFolders can be very powerful. A business example of a vFolder would be “Messages from Finance” based on the three people who work down there, or “Attachments from People”, which would give you one vFolder of emails with attachments for you to manage from one place. The sheer amount of criteria available for vFolders is substantial, and is really only limited by a user’s imagination. A downside to vFolders is that their placement and usage seems to be identical to normal mail rules. There doesn’t seem to be a way for a new user to understand vFolders without resorting to documentation or someone showing you how they work. This is disappointing because when used properly, they are a powerful and immensely useful feature.


Contacts is which is the name for the address book functionality in Evolution. The standard features are all there. VCard and LDAP support, sort by criteria, and groups (which are called contact lists) are all present.

The contact editor has seen some massive changes, allowing for a rich set of data to be stored.

As you can see, the vast amount of information for each contact can cover nearly every possible choice. The drop down options for the Email, Telephone, and IM fields are particularly useful, allowing any possible number of combinations. As you can see, the “picture” field allows you to assign a specific image to each contact, which is useful. It would be nice if this option did some auto-sizing for images however. The only thing I feel that is missing in this dialog is an option for custom fields.

Other mailers, like Mozilla Thunderbird, have an option to automatically add Contacts via certain criteria, ie. if you reply to them, or even if they send you mail. This option is not available in Evolution, so if you want to populate your Contacts, you have to either do it by hand, or depend on a directory, such as Groupwise, Exchange, or LDAP.


The Calendar has seen some of the most improvements in this release. One of the most significant is the ability to subscribe to iCalendar folders over the web.

iCalendars are a standard way of publishing scheduling information on the Internet. When combined with the evolution-webcal module, this allows one to click on an iCalendar link on a website, such as icalshare.com, and then automatically subscribe to the content. The evolution-webcal module is particularly useful, as I was able to subscribe to calendars with Epiphany, Galeon, and Mozilla Firefox without any hassle or configuration. One example of this is the GNOME Release Schedule . iCal is also supported in Mac OS X via iCal, Mozilla Sunbird, and in Microsoft Windows via Outlook. This allows Evolution users to share in the multitude amount of existing iCal resources on the web.

As expected, a multitude of different Calendar views are provided, Day, Work Week, Week, Month, and List. You can schedule meetings and appointments, as well as invite other people from your Contacts to participate. Recursion of meetings and categories is available, as well as alarm functionality to nearly every Calendar function. Publishing of free and busy time is also possible, if the back-end (like Groupwise or Exchange) supports it.

When in the Calendar mode, the left pane becomes an organizational means to separate calendars. The check boxes next to each Calendar you make allow you to view as many or as few items in the main Calendar view as you care to look at. This allows you to separate Calendars by task or by function. So while you can subscribe to many web calendars, you can easily disable their view so that, for example, you can concentrate on your work schedule. All Calendar items are also exportable, so it is possible to build a Calendar, forward it to any Contact with an iCal-capable client, and have them view your schedule. Unfortunately, there is no “Publish to Web” functionality to the Calendar, so if you want to share your calendar with your Contacts, you either have to export as an iCal and publish to the web by hand, or update your colleagues by mailing them an iCal every time you update your Calendar.

A nice default rule is the “Anniversaries and Birthdays”, which will automatically put anyone in your Contacts birthday and anniversary onto your Calendar, provided their contact information is filled in.


Tasks are the fourth major component of Evolution. Tasks allow you to assign certain things to yourself. The interface for adding new tasks is nearly as complete as the Calendar’s; you can even assign Tasks to people in your Contact list. Most of the Task’s functionality can be either duplicated in the Calendar, or made available in the Calendar View. Tasks can also be assigned a “Percentage Complete” flag, as well as prioritized to Low, Medium, or High priority.


Evolution 2.0’s most significant contribution to GNOME probably has nothing to do with Evolution as a client itself. The Evolution Data Server (E-D-S) brings a powerful feature set to GNOME. Imagine a desktop in which your IM contact list, GnomeMeeting list, email contacts, and phone address book are all the same, integrated and consistent. When tied into a future presence framework, like Galago, the possibilities are endless. Perhaps your instant messenger list will merely be an aggregation of your Contact’s information, which you can manipulate via both Evolution and your IM client and is smart enough to tell your acquaintances that you’re once vacation. This could be whether they contact you via email, IM, or phone.

In a corporate setting, if you use Groupwise or Exchange and want to run a Linux desktop, then Evolution is clearly your best option. It easily trumps both the Java Groupwise client, and the rudimentary web based clients that Exchange and Groupwise provide. Exchange users can forget anything before Exchange 2000 or 2003 being supported. Even then, there are issues. Now that the Exchange connector has been open-sourced, hopefully more participation from the open source community can lead to better support. As far as Groupwise support, while I was successful in getting it to work with Groupwise 6.5, don’t expect seamless integration however. It’s obvious that Groupwise support has been tacked on and that the expected sweet spot for integration will be Groupwise 7.

Overall, Evolution has come a long way since 1.0. Both the reliability and performance over the 1.x series of releases is significant, as Evolution did not crash once during my entire testing period, which covered the past four unstable releases leading up to this release. Performance, especially for IMAP accounts, has been improved immensely. Support for open standards like iCalendar really bring Evolution to the leading edge of GUI mail user agents. If you are using a 1.x version of Evolution, then 2.0 is by far a necessary upgrade. If you’ve been put off by past version’s reliability and performance, then this version is where you need to take another look.


  • Stability and Performance over prior versions is substantial, especially IMAP support.
  • Good Calendaring functionality, iCal support.
  • Secure mail features are easy to use.
  • E-D-S architecture allows other desktop applications to use common user data.
  • vFolders allow for new ways for users to sort email.


  • Publishing iCal information not intuitive.
  • Text size adjustment not very useful.
  • Junk filtering is slow.
  • Use of vFolders requires prior knowledge of “how they work”.

Discuss this story with other readers on the GNOME forums


Posted on September 15, 2004, in September 2004. Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: