Working with Email: An Overview
How does email work? How do we get our messages across the network, and how do we get them when sent to us?
Recently, I started doing something I didn't think I would do: taking apart my communication channels and reconstruct them from the ground up.
Anyway, how did I get to the basics?
Through using my Emacs mail facilities. This is a subject for another day on how to take apart and put together things in Emacs.
The basics of every email communication involves two major pieces:
The server; and
The server is the machine that holds your messages, and knows how to route it from one point to the other.
It does so using unique addresses, which when translated to human-readable forms are the username and the name of the server itself. For instance, firstname.lastname@example.org simply means "you" as the user, located at the mail server "gmail.com".
The other piece of the communication chain is the email client, the one you use to read your messages.
Understanding the Email client
In the next three or so posts, I would be looking at how the email works, using my own experiences and how I managed to put up a working email client in Emacs, piece by piece.
The beauty of some of these opensource solutions is that you tend to figure out things on your own, while picking the useful nuggets by the community of developers.
Thinking of email, I would take it from this perspective:
Most of us were introduced to it through webmail;
Then later on graduated to the email clients on our mobile phones or desktops; and then
Investigate the communication chain using the dedicated programs and the ports used on your machine to send and receive messages.
The next posts would focus on each of these ways we access email from whichever sever we will be using.
As this section of the blog is about putting things together, I trust you will find it intellectually rewarding as we investigate the workings of the email.
So for any email client, three things are critical for its operation, namely:
|Method||What it does||Example|
|Receiving||For getting messages.||IMAP or POP|
|Reading||For reading messages||Microsoft Outlook|
|Sending||For sending the messages||SMTP|
As you can see from the above table, other than the second row on reading the messages, for receiving and sending, what is required is the method as dictated by a given port.
This will be the subject of our next post when we look at how messages are received and sent before we explore in the detail of reading them.