Writing a GNOME mail client.
- From: Miguel de Icaza <miguel nuclecu unam mx>
- To: gnome-list gnome org, gnome-announce-list gnome org, gnome-hackers nuclecu unam mx
- Subject: Writing a GNOME mail client.
- Date: Fri, 16 Apr 1999 19:47:48 -0500
So, I was watching the grass grow the other day, and it ocurred to
me that the main medium of communications for the free software
community is mail. Is it our most valuable communication resource.
Still I have not seen any mail program which is truely powerful,
extensible and it is designed to address the needs of our community.
The mail needs of people these days are rather different from those
some years ago: keeping up with high-volume mailing lists; keeping up
with important people; being able to keep track of conversations;
being able to easily archive messages based on various criteria; being
able to automatically split mail in folders; being able to decode mime
messages and render them nicely; being able to link the addressbook
with corporate address book services; schedule appointments.
So we need to provide this powerful tool. Now, given that the core
of Gnumeric took only two months to develop and it was a rather solid
and good piece of code, I am confident that we can tackle this project
as well and do things right.
Now, what do we need to make this a reality? Well, step number one
is to make this project fun and reusing all of the nice code and
infrastructure that we have developed over the past months.
Given that we are going to redo the Mail application for GNOME, I
have a number of ideas on how to do this. So this is sort of a call
for volunteers that want to start working on such a beast.
We need various modules in this mail program. Each module should
be implemented as a CORBA object, exclusively because it allows us to
upgrade different components and choose different implementations over
time, without having to update the whole system.
Contextual operations are very useful, so we should use Button-3
for context operations as much as possible.
* Mail storage
This will handle the handling of the mail input backend, supporting
various existing setups: imap, pop, spool mail, Mailbox, MH. We can
steal the design for the interface from GNUS.
The mail storage should provide the mail splitting: applying all
the rules defined for separating the mail into different folders.
See  for more information.
* Summary display
Summary display should allow people to list the messages in a
folder. We should implement what most people expect from the
folder summary display, but on top of that we need that right
clicking on a message presents useful options about the message:
a. Increase the score for this author/thread.
b. Use this message as a "pattern" for automatically
creating a new folder.
So that users do not end up editing manually their
.procmail file, nor using a GUI to manually wonder
which header needs to be used for splitting.
We can get splitting right most of the time, so by
default we should be ablt to do a pretty good job.
c. Allow the user to auto-archive any conversation with the
person selected or to auto-archive a thread (ie, based on
It should be possible from a message to see what the guy is
replying to with a single click.
* Message Display
This should be clearly a full fledged display engine for all of the
new stuff we get on the net these days. Integration with Bonobo for
displaying message contents would be excellent.
We can use Mozilla to render the display in the future, so a simple
renderer for now would do the job.
* Tool integration
I suggest that the Message Display engine be decoupled by a clean
CORBA interface from the Summary engine and from the folder
We should integrate not only this, but it should integrate
seemlessly with the calendar and the addressbook (the addressbook
needs to be redesigned, because currently it is: not powerful and
not very nice).
The actual tools can be embedded with Bonobo (we can bootstrap with
this feature turned off, but eventually it will be like this), so
it will look like a big unified interface to the end user.
* Why not improve an existing mailer program
There is too much baggage in existing mail applications that we do
not want to carry into the future. Reusing parts of existing GPL
applications and mail applications should be fine, but I do not
think there is much to be rescued.
I would love to be proved wrong on this topic. But the experience
of gnumeric has left a very good taste in my mouth: it is possible
to do so and it is possible to do this in a very clean fashion.
* Developing this mail client
We need to split the work between hackers. Each one choosing a
very specific task, so that we can paralellize as much as
Cordination will take place on the email@example.com,
to subscribe send mail to firstname.lastname@example.org
and put "subscribe" as part of your message.
 Bertrand has been working in such a beast, perhaps we can reuse
some of his code. I am just a bit concerned that the
implementation is in Objective-C, which means that people need an
objective-c compiler on their system to compile it.
] [Thread Prev