Chapter 13 ■ SMtp
243
But programmers are clever people, and they came up with a series of solutions to these problems. First, new
protocols were invented—first the Post Office Protocol (POP), which I’ll discuss in Chapter 14, and then the Internet
Message Access Protocol (IMAP), which is covered in Chapter 15—that let a user’s e-mail client authenticate with a
password and download e-mail from the full-time server that had been storing it. Passwords were necessary to stop other
people from connecting to your Internet service provider’s servers and reading your e-mail! This solved the first problem.
But what about the second problem, persistence; that is, avoiding the loss of e-mail when desktop and laptop
hard drives crash? This inspired two sets of advances. First, people using POP often learned to turn off its default
mode in which the e-mail on the server is deleted once is has been downloaded, and they learned to leave copies of
important e-mails on the server, from which they could fetch e-mail again later if they had to reinstall their computer
and start from scratch. Second, they started moving to IMAP, if their e-mail server indeed chose to support this
more advanced protocol. Using IMAP meant they could not only leave incoming e-mail messages on the server for
safekeeping, but they could also arrange the messages in folders right there on the server! This let them use their
e-mail client program as a mere window through which to browse e-mail, which itself remained stored on the server
rather than having to manage an e-mail storage area on their laptop or desktop itself.
Finally, how does e-mail make it back to the server when the user finishes writing an e-mail message and
clicks Send? This task—again, officially called e-mail submission, brings me back to the subject of this chapter; that
is, e-mail submission takes place using the SMTP protocol. But, as I’ll explain, there are usually two differences
between SMTP as it is spoken between servers on the Internet and the way that it is spoken during client e-mail
submission, and both differences are driven by the modern need to combat spam. First, most ISPs block outgoing
TCP connections to port 25 from laptops and desktops so that these small machines cannot be hijacked by viruses
and used as e-mail servers. Instead, e-mail submission is usually directed to port 587. Second, to prevent spammers
from connecting to your ISP and claiming they want to send a message purportedly from you, e-mail clients use
authenticated SMTP that includes the user’s username and password.
Through these mechanisms, e-mail has been brought to the desktop—both in large organizations, like
universities and businesses, and also in ISPs catering to users at home. It is still common to provide instructions to
each user that tells them to:
• Install an e-mail client like Thunderbird or Outlook.
• Enter the hostname and protocol from which e-mail can be fetched.
• Configure the outgoing server’s name and SMTP port number.
• Assign a username and password with which connections to both services can be
authenticated.
Although e-mail clients can be cumbersome to configure and the servers can be difficult maintain, they were
originally the only way that e-mail could be offered, using a familiar graphical interface, to the new breed of users
staring at large colorful displays. Nowadays, they allow users an enviable freedom of choice: their ISP simply decides
whether to support POP, IMAP, or both and the user (or, at least, the nonenterprise user!) is then free to try the various
e-mail clients and settle on the one they like best.
The Move to Webmail
Finally, yet another generational shift has occurred on the Internet. Users once had to download and install a plethora
of clients in order to experience all that the Internet had to offer. Many seasoned readers will remember having
Windows or Mac machines on which they eventually installed client programs for such diverse protocols as Telnet,
FTP, the Gopher directory service, Usenet newsgroups, and, when it came along, the World Wide Web. (Unix users
typically found clients for each basic protocol already installed when they first logged in to a well-configured machine,
though they might have chosen to install more advanced replacements for some of the programs, like ncftp in place
of the clunky default FTP client.)
But, no longer! The average Internet user today knows only a single client: their web browser. Thanks to the
fact that web pages can now use JavaScript to respond and redraw themselves as the user clicks and types on their
keyboard, the Web is not only replacing all traditional Internet protocols—users browse and fetch files on web pages,