More Complex Servers
As other people sent mail to mbrain, the server would simply append those messages to the bottom of the file in the order that they arrived. The text file would accumulate a series of five or 10 messages, and eventually I would log in to read them. When I wanted to look at my email, my email client would connect to the server machine. In the simplest possible system, it would:
- Ask the server to send a copy of the MBRAIN.TXT file
- Ask the server to erase and reset the MBRAIN.TXT file
- Save the MBRAIN.TXT file on my local machine
- Parse the file into the separate messages (using the word "From:" as the separator)
- Show me all of the message headers in a list
When I double-clicked on a message header, it would find that message in the text file and show me its body.
As you can see, this is a very simple system. Surprisingly, the real email system that you use every day isn't much more complicated than this.
The Real Email System
For the vast majority of people right now, the real email system consists of two different servers running on a server machine. One is called the SMTP server, where SMTP stands for Simple Mail Transfer Protocol. The SMTP server handles outgoing mail. The other is either a POP3 server or an IMAP server, both of which handle incoming mail. POP stands for Post Office Protocol, and IMAP stands for Internet Mail Access Protocol. A typical email server looks like this:
The SMTP server listens on well-known port number 25, POP3 listens on port 110 and IMAP uses port 143 (see How Web Servers Work for details on ports).