<<< Date Index >>>     <<< Thread Index >>>

The future of mailboxes?



Hi.

[ Bevare: rand ahead :) ]

For a long time now, I have been unsatisfied by the principle of sorting
mails into mailboxes.

The main problem I feel is the lack of "cross-sorting": if I have two
friends with whom I exchange a lot of mail, it seems logical to have a
mailbox dedicated to each of them. But what happens if a thread involves
both of them?

Another problem is to keep the sent mails in the same boxes as the received
mails in the same threads. It is possible to do some work with fcc-hook, but
it has its limits, especially with topic-based sorting; maybe I should train
a Bayesian spam filter to sort the mail I send in the correct boxes. I ended
up either sorting manually or doing bogus perl script to match References
headers in mailboxes with Message-Id of sent mails.

Somewhat recently, I discovered that some mail systems are providing the
mail sorting scheme of my dreams, or at least a good approach of it. I am
thinking especially of GMail and Opera Mail.

For those who do not know, here is the principle: all the mails, both sent
and received, make a single spool, and the user can select "views" of the
spool, which means subsets of the messages according to various conditions
(sender, recipient, date, explicitly set tags, or even full-text search).

I know some people who do the same with mutt, using the "limit" (l) command
on a single big mailbox. I am quite tempted by such a scheme myself, but
there are drawbacks:

- Speed: mutt is really fast loading mailboxes, but with really a lot of
  mail, just the speed of the disks can become a limiting factor. This is
  especially true on multi-users systems, where disk cache is quickly
  flushed by other users' data, and disk bandwidth is shared with a lot of
  people. And even applying the search pattern to thousands of mails to find
  just a dozen of interesting ones can cause a significant delay.

- Thread-closure: as far as I can see, there is no way to select threads
  instead of individual messages with the "limit" command, is there?

- Data isolation: I am not very happy with the idea of having in the same
  file very old mails, that I may want to read but not change in any way,
  and recent live mails, whose tags and flags I will likely change soon. I
  believe that the formers should be in a read-only compressed mbox, while
  the latter may side in a maildir spool.

- Interface: I do not think it is possible to predefine limit patterns. It
  is possible to make macros, though, but this excludes browsing the list of
  views or using tab completion.

I think the ideal would be a meta-mailbox made of a database-style index
around several traditional mailboxes.

Implementing such a system would require a lot of work; much more than I may
able to do, especially since I know almost nothing about mutt's internals.
But I am convinced it would be a great improvement to the current functions
of mutt.

I have seen some scripts doing part of the work, using forests of symlinks
in mdir spools for example. Alas, I do not think such scripts could become
as smooth as an integrated solution.

Is anyone interested in, at least discussing the matter? I have given some
thoughts on details of a possible implementation, and I would like to share
them.

Alternatively, does anyone know a Free, text-mode mail user agent with such
a feature?

Regards,

-- 
  Nicolas George

Attachment: signature.asc
Description: Digital signature