Modern Email System “A set of related and interconnected protocols that run on clients and servers to provide the global mesh of mailboxes, readers, and writers upon which email depends.” Ray Tomlinson RFC 788 Email Architecture Three distinct stages of development – all still supported today: 1. Single Shared System – mainframe/mini/server that users access. Administrator creates mailboxes where received messages are stored. Mail User Agent (MUA) creates and stores messages across a file system. 2. Shared System Connected to the Internet – add a Message Transfer Agent (MTA) to handle transfers between hosts; UA still performs the same tasks. 3. Email Clients/Servers Connected to the Internet – connections via LAN/WAN. Because the receivers are not always present, users need the services of a Message Access Agent (MAA) to retrieve their email from their mail server. How does the sender's email system know which host is acting as the receiver's email system? DNS MX records Email servers are not necessary for the Simple Mail Transfer Protocol (SMTP) to operate. Only SMTP MTA is used for host-to-host transfers. Modern Email Process (Five Basic Steps) 1. Composition within MUA – creates header, body and attachments. 2. Submission to MTA – uses either the MUA or an Access Agent (AA) to transfer mail to SMTP server. 3. MTA Delivery – uses DNS to determine delivery host or sends message to destination allowing local agents to determine destination host. 4. Processing – incoming server receives message and places it in recipient's mailbox 5. Access and Reading – uses either the MUA or a Delivery Agent (DA) such as the Internet Message Access Protocol (IMAP) or the Post Office Protocol (POP). Four hosts are involved in these five steps: a) Sender Client b) Local SMTP c) Recipient SMTP d) Recipient client More about Email related Protocols SMTP (RFC 921 – RFC 5321) – typically used between servers but can be deployed by clients to send messages to relay hosts. It is a simple protocol that is text based where one or more recipients of a message are specified along with the message text and possibly other encoded objects. The message is then transferred to a remote server using a series of queries and responses between the client and server. An email client will determine its outgoing SMTP server from its configuration information. A relaying server typically determines which SMTP server to connect to by looking up the MX DNS record for each recipients domain name. Uses TCP and port 25. SMTP is a “push” protocol that cannot “pull” messages from a remote server on demand; must employ a DA to pull.