The idea
Follow one email from aliceLaptop to bob's inbox, server by server. Each domain runs its own mail server, mailNorth for north.lab and mailSouth for south.lab: postfix speaks SMTP, dovecot speaks IMAP, and bob reads on bobLaptop.
Steps
-
The MX record names a domain's mail server
A sender knows only an address like
bob@south.lab, never which machine takes south.lab's mail. So a mail server asks DNS where mail for the domain goes. Ask the same question from aliceLaptop.aliceLaptop:~# dig MX south.lab +noall +answer aliceLaptop:~# dig +short south.lab aliceLaptop:~# dig +short mailSouth.lab
-
SMTP typed by hand
Every mail server in the world must understand every other, so SMTP stays simple: text lines and three-digit replies on Port 25. Hand mailNorth a message for bob, line by line, and read each reply before the next.
aliceLaptop:~# nc mailNorth.lab 25
Pro
3 more steps in the app
- One mail server relays to the next
- Reading mail over IMAP
- A mail server is not an open relay