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 e-mail, my e-mail 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 e-mail system that you use every day isn't much more complicated than this.
The Real E-mail System
For the vast majority of people right now, the real e-mail 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 e-mail 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).