Overview of email systems.
19/06/2025
Introduction
Email is one of the oldest Internet services, which has been in existence for many years and is expected to continue for at least another decade. Despite its significant role in daily life, most individuals have limited knowledge of its inner workings, me included.
This is a very broad overview of how an email flows through an email system. My goal is to learn the material in enough detail to be able to explain it as clearly as possible. This article is a work in progress so I would appreciate it if any errors you encounter be sent over to maneesha14w@gmail.com.
The purpose of email
At its core email is incredibly simple. Its purpose was to allow users to communicate in an asynchronous way. This is opposed to synchronous communication where communication happens in real-time with immediate back-and-forth interaction, whereas asynchronous communication involves a delay between sending a message and receiving a response.
The Client
Lets say you want to send me an email. Heres what you know:
- You know my address is maneesha@hey.com.
- Your address is coolpenguin@gmail.com.
You log into your webmail client, which is the gmail web client. Web clients are the most popular clients these days, but there are desktop clients like the mail app on iOS or cli clients like mutt.
Email is a prime example of the client-server model, a distributed application structure where one or more servers provide services to clients who, in turn, request them.
These clients are known as Mail User Agents (MUA), and they handle the traditional frontend of the application.
They allow users to:
-
Compose and send emails: It provides an interface to write new emails, address them to recipients (To, Cc, Bcc), and send them to someone.
-
Receive and view emails: It connects to a mail server to retrieve new messages and displays them in a user-friendly format in an inbox.
-
Attachment Handling: It enables you to attach files to your messages and to open or save attachments you receive.
-
Message Formatting: It supports different text formats, allowing you to use rich text, bolding, italics, and other styling options.
They also do sanitation checks like make sure you’re not sending an email to no one, having a subject line and they also make sure your email headers are in order, more on that later.
The outgoing server
Next in line is the outgoing server software known as the Mail Transfer Agent (MTA).
This server software primarily handles the sending a