What are the main steps in email delivery?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

So when When you hit send on an email, it doesn't teleport straight to the recipient's inbox. It takes a multi-step journey through mail servers, DNS lookups, and authentication checks. Here's what actually happens.

Step 1: Your email client hands the message to an outbound mail server (called an MTA, short for Mail Transfer Agent). This is the server your ESP runs, or if you're sending from Gmail or Outlook, it's their outbound server. The MTA wraps your message in an envelope with sender and recipient addresses, then checks that your domain is properly authenticated with SPF, DKIM, and DMARC.

Step 2: The MTA performs a DNS lookup to find out where the recipient's email lives. It queries the recipient's domain for MX records (Mail Exchange records), which tell it which mail server accepts incoming messages for that domain. If the recipient is at someone@company.com, the MTA looks up company.com's MX records and gets back something like "mail.company.com" or "aspmx.l.google.com" (if they use Google Workspace).

Step 3: The outbound MTA opens an SMTP connection to the receiving MTA and hands off the message. This is where the two servers talk to each other. The receiving server can accept the message, reject it outright (hard bounce), or tell the sender to try again later (soft bounce). If it accepts the message, it moves to the next step.

Step 4: The receiving MTA runs the message through filters and decides where it goes. Spam filters check your sender reputation, authentication results, content, and engagement history. Then the message gets delivered to the inbox, routed to spam, or quarantined. This decision happens on the receiving side and you don't control it directly, but everything you do in steps 1-3 affects the outcome.

Every server that touches your message adds a Received header to the top of the email. These headers stack up like a trail of breadcrumbs, showing the exact path the message took and how long each hop took. When you're debugging delivery issues, reading these headers tells you where things went wrong. The most common failure points: DNS misconfiguration (MX records pointing to the wrong server), authentication failures (missing or broken SPF/DKIM/DMARC), and reputation issues (your sending IP or domain has triggered spam filters before). If you're just getting started, check your authentication setup first. You can verify your SPF record with our free SPF checker, or if you're stuck on any of this, our SOS hotline is free and we actually pick up.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Get personalized help for your setup

I read this on the Email Almanac about how email delivery works: "When you hit send on an email, it takes a multi-step journey through mail servers, DNS lookups, and authentication checks. Your email client hands the message to an outbound MTA, which checks authentication and wraps the message. The MTA performs a DNS lookup to find the recipient's mail server, opens an SMTP connection to hand off the message, and the receiving MTA runs it through filters to decide inbox or spam." Help me understand how this applies to MY specific situation. Based on the details I share below, give me: 1. Which step is most likely causing issues for me (if I'm having delivery problems) 2. What to check in my setup (authentication, DNS, MTA configuration) 3. Common mistakes at my experience level (beginner traps vs advanced edge cases) 4. Next steps to verify everything works (specific tools or tests) --- My details (the more you share, the better the advice): - Email platform/ESP: e.g. Mailchimp, SendGrid, Postmark, self-hosted, Gmail - Domain(s): your sending domain - Sending volume: e.g. 500/month, 10,000/day - Experience level: beginner / intermediate / advanced - What I'm building: newsletter, transactional emails, marketing campaigns - Current challenge: [e.g. "emails bounce", "land in spam", "setting up for first time", "migrating ESPs"]

Edit the yellow boxes, then send to the AI of your choice.