Penguin
Annotated edit history of MailBox version 4, including all changes. View license author blame.
Rev Author # Line
2 AristotlePagaltzis 1 A MailBox is a logical container for mail.
1 StuartYeates 2
2 AristotlePagaltzis 3 There are many different physical formats for MailBox~es, which typically use some variation on the following schemes:
4
5 A FlatFile:
4 AristotlePagaltzis 6 All the messages in a MailBox are stored in a single file.
3 AristotlePagaltzis 7 [BSD]'s and [Solaris]' [MBox] format is the most common example.
2 AristotlePagaltzis 8 One file per [Email]:
3 AristotlePagaltzis 9 [MH] and MailDir store each [Email] in a file of its own.
10 This scales much better than the typical FlatFile format, as it is easier to skip from message to message.
11 It is also more robust against corruption, since mishaps in any single file can only affect one message at most.
12 The drawback is that large MailBox~es require opening a lot of files and may heavily tax your FileSystem.
13 An attempt is often made to solve this by the use of some kind of header index/cache,
14 but no two programs (or even versions of the same program) agree on the format they use.
2 AristotlePagaltzis 15 A DataBase:
16 MicrosoftExchange does this, as well as [DBMail] on [Unix]. It is often the backend of choice for WebMail systems, as well.
17
3 AristotlePagaltzis 18 There are, of course, hybrid approaches, as well as various workarounds for each approach (indexing, offset tables, header cache files) to overcome the performance problems that it suffers from. Alas, all of these workarounds and differing approaches tend to be application specific, which makes the vanilla formats more practical most of the time.
2 AristotlePagaltzis 19
20 For a comparasion of several different schemes, have a read of [http://www.washington.edu/imap/documentation/formats.txt.html], or for an even more subjective "discussion", [http://slashdot.org/article.pl?sid=01/01/27/0138202] ;)