Philip Van Hoof, the developer behind the lightweight Tinymail e-mail framework, has written a plugin for GNOME's Evolution e-mail client that exposes the application's functionality through D-Bus. It is the first step towards creating a standardized D-Bus API for Linux mail clients.

The aim of the project is to provide desktop search and indexing systems like Tracker and Beagle with a more practical and efficient way to extract e-mail metadata. The current strategy employed by such indexing systems is to parse the raw mbox data files, which can be clumsy and inefficient. The new D-Bus API will require indexers to register with the e-mail client over D-Bus to receive a notification every time mail data is altered.

According to van Hoof, the D-Bus API is so complete that it could theoretically be use to build a completely external mail client. This is a big win for desktop automation and it has significant advantages beyond the scope of indexing systems. It could be used to integrate mail capabilities more tightly into the rest of the desktop stack. For example, it could be used to build a richer visual notification system that informs users when new messages arrive.

Evolution already provides relatively effective programmatic access to its address book and calendaring capabilities to third-party applications through the Evolution Data Server system and its assorted libraries, but Evolution has never before offered rich externally accessible APIs for interacting with the program's underlying mail storage.

The current version of van Hoof's Evolution D-Bus plugin is somewhat coupled with Tracker, which is the indexing system that will be used for the reference implementation. In the future, however, he plans to turn the D-Bus API into a FreeDesktop.org standard and encourage its adoption by other mail clients and indexing systems.

The D-Bus API and other details about the plugin are documented on the project's page at the GNOME Live wiki. For additional information, see van Hoof's blog entries.