Email Delivery and Routing
Email Delivery Flow
1. User sends email via Mail Client
2. Client connects to SMTP server
3. SMTP server looks up recipient's MX records via DNS
4. SMTP server connects to recipient's mail server
5. Recipient's server accepts and stores the email
6. Recipient retrieves email via POP3/IMAP
DNS and MX Records
MX (Mail Exchange) Records tell sending servers where to deliver email for a domain.
Example MX Record Lookup
nslookup -type=MX example.com
Response:
example.com MX preference = 10, mail exchanger = mail1.example.com
example.com MX preference = 20, mail exchanger = mail2.example.com
- Lower preference number = higher priority
- Multiple MX records provide redundancy
Email Routing Process
- DNS Lookup: Sender's server queries DNS for recipient's MX records
- Connection: Connects to highest priority MX server
- Handshake: SMTP handshake (EHLO)
- Transfer: Sends email using SMTP commands
- Acknowledgment: Receiving server confirms receipt
- Storage: Email stored in recipient's mailbox
Delivery Status
Success Codes
- 250: Requested action completed
- 251: User not local, will forward
Failure Codes
- 450: Mailbox unavailable (temporary)
- 550: Mailbox unavailable (permanent)
- 552: Mailbox full
- 554: Transaction failed
Email Queuing
If delivery fails:
- Email placed in queue
- Retry attempts (typically over 4-5 days)
- If all attempts fail, bounce message sent to sender