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