How an email gets delivered
From a composed message to your inbox: the message format, submission, server-to-server delivery, mailbox access, and the checks that stop forgery.
- 01
Write the message Message format and MIME
An email is a block of header fields followed by a body. The message format defines the headers and MIME lets the body carry attachments and non-ASCII text.
RFC 5322 Internet Message FormatRFC 2045 MIME Part OneRFC 2046 MIME Media TypesRFC 2047 MIME Header Extensions
- 02
Hand it to your provider Message submission
Your mail app submits the message to your provider on a dedicated submission service, usually after authenticating, rather than sending directly to the recipient.
RFC 6409 Message Submission for MailRFC 4954 SMTP Authentication
- 03
Relay it to the recipient SMTP
Servers find the recipient domain's mail server and pass the message along with SMTP, hop by hop, until it reaches the destination mailbox.
- 04
Read it from your inbox POP3 and IMAP
The mail you receive sits on a server until you fetch it. POP3 downloads messages and IMAP keeps them on the server and synchronizes folders and flags.
- 05
Prove it is genuine SPF, DKIM and DMARC
Receivers check whether the sending server is allowed to use the domain, whether the message carries a valid signature from that domain, and what the domain owner wants done when a check fails.
RFC 7208 SPFRFC 6376 DKIMRFC 9989 DMARCRFC 9990 DMARC Aggregate ReportingRFC 9991 DMARC Failure Reporting
- 06
Protect it on the wire Transport encryption
Mail started out in cleartext. STARTTLS upgrades SMTP connections, current guidance prefers TLS from the first byte for submission and access, and MTA-STS lets a domain say that TLS is required.
RFC 3207 STARTTLS for SMTPRFC 8314 Use TLS for Email Submission and AccessRFC 8461 MTA-STS