next up previous
Next: 3 Design Up: HLFSD: Delivering Email to Previous: 1 Introduction


2 Background

  This section provides an in-depth discussion of why available methods for delivering mail to home directories are not as good as the one used by hlfsd.

2.1 Single-Host Mail Spool Directory

  The most common method for mail delivery is for mail to be appended to a mailbox file in a standard spool directory on the designated ``mail home'' machine of the user. The greatest advantage of this method is that it is the default method most vendors provide with their systems, thus very little (if any) configuration is required on the SA's part. All they need to set up are mail aliases directing mail to the host on which the user's mailbox file is assigned. (Otherwise, mail is delivered locally, and users find mailboxes on many machines.)

As users become more sophisticated, and aided by windowing systems, they find themselves logging in on multiple hosts at once, performing several tasks concurrently. They ask to be able to read their mail on any host on the network, not just the one designated as their ``mail home.''

2.2 Centralized Mail Spool Directory

  A popular method for providing mail readability from any host is to have all mail delivered to a mail spool directory on a designated ``mail-server'' which is exported via NFS to all of the hosts on the network. Configuring such a system is relatively easy. On most systems, the bulk of the work is a one-time addition to one or two configuration files in /etc. The file-server's spool directory is then hard-mounted across every machine on the local network. In small environments with only a handful of hosts this can be an acceptable solution. In our department, with a couple of hundred active hosts and thousands of mail messages processed daily, this was deemed completely unacceptable, as it introduced several types of problems:

2.3 Distributed Mail Spool Service

  Despite the existence of a few systems that support delivery to users' home directories,[*] mail delivery to home directories hasn't caught on. We believe the main reason is that there are too many programs that ``know'' where mailbox files reside. Besides the obvious (the delivery program /bin/mail and mail readers like /usr/ucb/Mail, mush, mm, etc.), other programs that know mailbox location are login, from, almost every shell, xbiff, xmailbox, and even some programs not directly related to mail, such as emacs and trn. Although some of these programs can be configured to look in different directories with the use of environment variables and other resources, many of them cannot. The overall porting work is significant.

Other methods that have yet to catch on require the use of a special mail-reading server, such as IMAP[16] or POP[17]. The main disadvantage of these systems is that UAs need to be modified to use these services -- a long and involved task. That is why they are not popular at this time. See Section 6.1 for more details.

Several other ideas have been proposed and even used in various environments. None of them is robust. They are mostly very specialized, inflexible, and do not extend to the general case. Some of the ideas are plain bad, potentially leading to lost or corrupt mail:

2.3.1 Why Deliver Into the Home Directory?

  There are several major reasons why SAs might want to deliver mail directly into the users' home directories:

In summary, delivering mail to home directories provides users the functionality sought, and also avoids most of the problems discussed in Section 2.2.

next up previous
Next: 3 Design Up: HLFSD: Delivering Email to Previous: 1 Introduction
Erez Zadok