Re: mailbox format(s)
Bruce Lilly <[email protected]> Thu, 26 Feb 2004 18:26:52 -0500
| Newsgroups | gmane.mail.ng |
|---|---|
| Organization | Bruce Lilly |
| Message-ID | <[email protected]> |
Martin Duerst wrote: > I quite strongly agree with Iljitsch on this one. > Having a well-defined format that can be used for files > is very helpful. The biggest advantage would be that it > makes it easier to switch MUAs. If the mailbox is accessed via a standard network protocol such as POP or IMAP, it is trivially easy to switch MUAs. It also matters little (modulo firewalls, etc.) whether the MUA is running on the same host as the POP/IMAP server or on a different host. Some (most?) IMAP servers also provide POP protocol access, so it may even be possible to switch access protocols painlessly. There are many problems, though. MUAs, especially those not using IMAP, tend to store their own copies of the user's mailbox in MUA-specific places. That's a separate issue from the format, which also tends to differ among MUAs. A single format might not scale well; what works for an organization with plenty of resources might not work at all for a guy with a PDA or cell phone (and vice versa). > The format could come in single-message and multiple-message (like > current mbox) variants. The later should just be a concatenation > of the former, or otherwise a very trivial transform. Been there, done that. Never again. A flat file just doesn't work well with even a modest number of messages. I've used POP and IMAP servers that used such a format for a mailbox, and they are intolerably slow. Conversely, Cyrus IMAP stores one message per file, with a database for metadata (access lists, etc.), and it's quite fast. A side benefit is that (with suitable access rights) I can do things with individual messages without having to extract them from a pile of others in a single file. > And in general, file sizes shouldn't be that much of a > problem. Please reread RFC 1958 section 3.1 and reconsider mobile phones and PDAs. >> ability to control access, >> ability to lock portions of a file for update, etc., > > > sharing a format doesn't necessarily mean having access > at the same time. Being able to do that may lead to > very interesting new applications, but it's not that > essential. If one is using a single, multi-message mbox-like file and an MTA needs to write (to append a new message) while an MUA is reading/writing (presenting messages for the user, deleting old messages, moving some to/from other mailboxes, etc.), there had better be some provision for locking. Unless you want to forbid users from leaving an MUA open for extended periods. >> not to mention >> record-oriented systems (e.g. Bitnet), > > > On the way out, not worth caring about too much > (as Iljitsch said, nobody should be forced to use > a format). If it won't work for some systems (remember that bit about heterogeneity), what is the point of having a standard? >> 2. metadata used by different applications (e.g. IMAP requires, and POP >> supports a UID per message) > > > Well, the new format should be designed so that these can be > added, and where possible shared. Application-specific metadata should be handled separately from the message itself. One of the user-visible goals is (paraphrasing) that messages shouldn't be polluted with the life history of every application that ever touched the message, leading to extraneous cruft bloating the message. Generic metadata related to the message (sender, security/privacy data, etc.) of course should be part of the message format. > Or designing the message format so that it can be trivially used for > file storage (currently SMTP uses a . to terminate DATA, and mbox > uses From to start a message; just removing this difference would > bring us a long way; the problem is essentially the same). I've already mentioned problems with mbox format. In my opinion (based in part on studying the problem, and in part on experience), the least problematic way to store a single message is in RFC 822 [2822] format (with byte stuffing removed). Any transformations would have to be reversible in the case of a queued message being stored as part of an MTA's store-and-forward processing, and even such apparently innocuous transformations as converting line endings are not so simple when one examines the details (consider a binary MIME part containing 0x0D and 0x0A octets in various sequences). >> Applications running across a network can access mailboxes via >> established network protocols for accessing or transferring messages >> and mailboxes, such as POP and IMAP. > > > There are many other things to email, such as procmail,... Yes, and there are lightweight protocols such as LMTP...