Next | Prev | Up | Top | Contents | Index

System Organization

The design goals for sendmail included the following:

  1. Message delivery should be reliable, guaranteeing that every message is correctly delivered or at least brought to the attention of a human for correct disposal; no message should ever be completely lost.

  2. Existing software should be used to do actual message delivery whenever possible.

  3. sendmail should be easy to expand to fairly complex environments.

  4. Configuration should not be compiled into the code.

  5. sendmail should let various groups maintain their own mailing lists, and let individuals specify their own forwarding, without modifying the station's alias file.

  6. Each user should be able to specify the mailer to execute to process mail being delivered. This feature allows users with specialized mailers that use a different format to build their environments without changing the system, and facilitates specialized functions (such as returning an "I am on vacation" message).

  7. To minimize network traffic, addresses should be batched to a single station where possible, without assistance from the user.
Figure 8-2 illustrates the sendmail system structure that is based on the original design goals for sendmail.

Figure 8-2 : sendmail System Structure sendmail neither interfaces with the user nor does actual mail delivery. Rather, it collects a message generated by a user agent program such as Berkeley Mail, edits the message as required by the destination network, and calls appropriate mailers to do mail delivery or queueing for network transmission. The exception is mail sent to a file; in this case, sendmail delivers the mail directly.

This discipline allows the insertion of new mailers at minimum cost.

Because some of the senders may be network servers and some of the mailers may be network clients, sendmail can be used as an internetwork mail gateway.


Next | Prev | Up | Top | Contents | Index