E-mail transport architectures

This web page attempts to explain how internet e-mail transport works and to give some help with devising an e-mail transport architecture. It also includes information about suggested versions of sendmail for different platforms for anti-relay and security reasons.

A typical e-mail message is

Composing you can do yourself.

Injection is traditionally done by interacting with the mail system on the local computer. That is in the traditional case of a multiuser system where everyone logs in with terminals or direct text modem connections or via telnet. In the personal computer network-mail-reader case these days, SMTP is often used for injection (see next item).

A mail message is transported to its destination by communication between computers. The following web pages are almost exclusively about the internet case, where the message is transmitted from one computer to the next using the SMTP protocol. The SMTP protocol allows an "MTA" (mail transport agent) to transmit the message to another MTA using the internet protocol (which is the low-level protocol being used any time you have IP-address-based communication, including over a local ethernet). At that point the transmitting MTA ends its responsibility for the message, deleting it from its local storage, and the receiving MTA begins its responsibility for the message, either preparing to transport it further or preparing to deliver it.

When the mail reading protocols such as POP3 and IMAP were devised, their authors noted that the already-existing SMTP protocol would be suitable for injecting messages as well as transporting them. So they didn't provide an injection mechanism in the POP3 or IMAP protocols, and thus when you run Eudora or Netscape Mail on your personal computer, the first network transmission of a mail message you've composed actually goes out using the SMTP protocol, just as if it were an MTA-to-MTA transmission. This is why you need to configure an SMTP server as well as a POP3 or IMAP server in those sorts of programs.

When the message arrives at its destination computer, it is then delivered. This might happen immediately after injection (i.e. without any transportation step) if the author and recipient of the message are both users on the same multi-user computer system. Otherwise, it is transported to the destination computer (perhaps not in a single step, perhaps it is relayed through multiple computers), and then delivered there. Delivery typically consists of appending it to a file representing that user's "inbox", such as /usr/spool/mail/flaps or /var/mail/flaps for a user named "flaps" on a unix system.

To read an e-mail message, the recipient uses an MUA (mail user agent) which manipulates the inbox file on the destination computer. Increasingly these days the recipient uses a program which communicates over the network from the computer the recipient is sitting in front of, which is a personal computer not holding any authoritative copies of the mail, to the "server" computer which holds the inbox and is running server software such as POP3 or IMAP. These protocols include such commands as "list my messages" or "transmit message #38" or "delete message #38". That sort of thing has nothing to do with message transport and thus is not a part of the SMTP protocol, so new protocols had to be devised to permit network mail reading.


These web pages are about mail transport. Primary focus areas are:

I also have a page about


Alan J Rosenthal