# How Email Delivery Actually Works (What Happens After You Click Send)

> When you press Send Campaign in AcelleMail, your message travels through five stages before it lands in someone's inbox. Knowing each stage tells you exactly where to look when a campaign goes sideways — and why some recipients see the email and others don't.

- Canonical URL: https://acellesend.com/kb/articles/how-email-delivery-actually-works
- Author: Lena Hart, Email Deliverability Editor
- Category: Email Infrastructure — Mail servers, MTA configuration, relay setup, IP management, monitoring
- Content type: guide · Difficulty: beginner
- Tags: Acellemail
- Published: 2026-03-14 · Last updated: 2026-08-15
- Reading time: 5 min
- Publisher: AcelleMail Knowledge Base, https://acellesend.com/kb

---

## What this is for

You press **Send Campaign** in AcelleMail. The status badge turns from *Draft* to *Queuing*, then *Queued*, then *Sending*, then *Done*. Between *Sending* and the recipient's inbox, your message travels through five distinct stages run by other people's servers. This guide walks each stage in plain English — so when something goes wrong, you know which stage to investigate instead of guessing.

You don't need to run anything. You just need to know the path.

## The 5-stage journey

### Stage 1 — AcelleMail queues every recipient

When you click **Send Campaign**, AcelleMail doesn't try to dispatch all 50,000 emails at once. It queues each recipient as a separate job. A pool of background workers (your sending workers) picks jobs off the queue one by one. This is why the campaign status moves through *Queuing* (building the list) → *Queued* (waiting) → *Sending* (workers are picking up jobs).

**Where you watch it:** the campaign **Overview** page. The progress badge ticks from *Queuing* to *Sending* to *Done* as workers drain the queue.

### Stage 2 — Your sending server looks up the recipient's mail server

For every email, your sending server has to find *where* to deliver it. It asks DNS: "What's the mail server for `gmail.com`?" DNS returns the recipient's **MX record** — a hostname like `gmail-smtp-in.l.google.com` for Gmail, or `mail-protection.outlook.com` for Outlook 365.

If the recipient's domain has no MX record, your server gets back a delivery failure here — that becomes a **hard bounce**, and AcelleMail flags the subscriber so future campaigns skip them.

### Stage 3 — The SMTP handshake

Your server opens a connection to the recipient's mail server and they talk over the SMTP protocol — a short, formalized exchange that goes: hello, who are you, who's the message for, here's the message, goodbye. It takes a few hundred milliseconds when both sides are healthy. It can take 30+ seconds if the recipient server is slow or rate-limiting you (see [Email Throttling and Rate Limits Explained](https://acellesend.com/kb/articles/email-throttling-and-rate-limits-explained)).

Failures at this stage usually look like a **soft bounce** — the recipient server said "not right now," and your server can try again. AcelleMail will retry soft bounces a configurable number of times before giving up.

### Stage 4 — Encryption (TLS)

Modern receiving servers expect the SMTP conversation to be encrypted with TLS. This stops anyone in the middle of the internet from reading your message in transit. Gmail, Outlook, Yahoo all require it. If your sending server doesn't support TLS, big providers either reject the message outright or quietly drop it into spam.

This is the rare stage you can't see from inside AcelleMail — it's a property of your SMTP setup. If you use AWS SES, SendGrid, or any modern provider, TLS is on automatically. If you use a homemade Postfix install, your operator needs to confirm STARTTLS is configured.

### Stage 5 — Authentication checks (SPF, DKIM, DMARC)

Even after the message is delivered to the recipient server, the recipient's spam filter runs three identity checks before placing it in the inbox:

| Check | What it asks |
|---|---|
| **SPF** | Is the IP that sent this message on the list of IPs the From-domain says are allowed to send for it? |
| **DKIM** | Did the From-domain cryptographically sign this message? Does the signature verify? |
| **DMARC** | Do the SPF or DKIM domain names *line up* with the visible From address? |

All three need to pass for best inbox placement. If they don't, the message often lands in spam — or, with strict DMARC enforcement, gets rejected outright. This is the #1 cause of "I sent the email but my recipient says they never got it." Set up all three on day one — see [Complete DNS Setup for Email Sending: SPF, DKIM, DMARC](https://acellesend.com/kb/articles/how-to-set-up-spf-dkim-and-dmarc-records).

## Where each stage shows up in AcelleMail

| Stage | AcelleMail signal | What "failure" looks like |
|---|---|---|
| Queue | Status badge: *Queuing* → *Queued* → *Sending* → *Done* | Status stuck on *Queuing* for >5 min → your queue worker is not running |
| MX lookup | Recipient is marked **Hard bounced** | Subscriber moves to `bounced` status on the list |
| SMTP handshake | Recipient is marked **Soft bounced** | Subscriber stays subscribed but counts toward bounce rate |
| TLS | Bulk drop to spam from one provider | All Gmail recipients show 0% open suddenly — check your SMTP provider's TLS config |
| Authentication | Spam-folder placement | See your domain in Google Postmaster Tools / Microsoft SNDS |

## Common issues

| What you see | What to do |
|---|---|
| Status badge stuck on *Queuing* | Your queue worker process is not running. Have your operator restart it (see [Setting Up Queue Workers and Cron Jobs](https://acellesend.com/kb/articles/setting-up-queue-workers-and-cron-jobs)). |
| Lots of *hard bounces* on a freshly-imported list | The list is dirty — too many addresses with no valid mail server. Use a verification service before importing. See [Email List Hygiene](https://acellesend.com/kb/articles/email-list-hygiene-clean-your-list-for-better-deliverability). |
| Lots of *soft bounces* concentrated at one ISP | You're being rate-limited by that ISP. Slow the send by configuring throttling on the sending server. |
| Recipient says "I never got it" but AcelleMail says delivered | It's in their spam folder. Almost always an SPF / DKIM / DMARC misconfiguration — verify your DNS setup. |

## What to do after

1. Set up SPF, DKIM, and DMARC if you haven't — this single step eliminates most "didn't arrive" mysteries.
2. Bookmark the campaign **Overview** page during your next send and watch the status badge tick through the stages.
3. If you operate your own server, read [Email Queue Architecture in AcelleMail](https://acellesend.com/kb/articles/email-queue-architecture-in-acellemail) for the queue side.

## Related articles

- [Email Queue Architecture in AcelleMail](https://acellesend.com/kb/articles/email-queue-architecture-in-acellemail)
- [Complete DNS Setup: SPF, DKIM, DMARC](https://acellesend.com/kb/articles/how-to-set-up-spf-dkim-and-dmarc-records)
- [Email Throttling and Rate Limits Explained](https://acellesend.com/kb/articles/email-throttling-and-rate-limits-explained)
- [Bounce Types Deep Dive](https://acellesend.com/kb/articles/understanding-email-bounce-types)

---

## Related articles

- [Dedicated vs Shared Sending IP: Which to Pick](https://acellesend.com/kb/articles/dedicated-vs-shared-ip-address): AcelleMail sends through whatever sending server you connect, so the dedicated-vs-shared IP choice is really a choice about your sending provider. Here's how to decide, and where it lives in AcelleMail.
- [Choosing the Queue Driver: Database vs Redis vs SQS for AcelleMail](https://acellesend.com/kb/articles/choosing-the-queue-driver-database-vs-redis-vs-sqs-for-acellemail): AcelleMail ships with `QUEUE_CONNECTION=database` as the default — and that's the right choice for installations up to ~500k emails per day. Past that threshold, database-queue contention starts to dominate worker time, and switching to Redis or SQS produces a step-change in throughput. This guide walks the trade-offs, the threshold where each driver wins, the migration steps, the AUTOMATION_QUEUE_CONNECTION separation pattern, and the operational gotchas you only learn after the first 3am queue incident.
- [Email Queue Architecture in AcelleMail (Why Sends Are Steady, Not Sudden)](https://acellesend.com/kb/articles/email-queue-architecture-in-acellemail): AcelleMail uses a job queue to pace out large sends — instead of trying to push 50,000 emails at once, workers pick recipients off a queue one at a time. This explainer covers why that matters for deliverability and how to read the campaign status flow.
- [BIMI with VMC — Cost, Process, and Whether It's Worth It](https://acellesend.com/kb/articles/bimi-with-vmc-cost-walkthrough): VMC (Verified Mark Certificate) costs $1,500/yr per domain and takes 4-8 weeks to obtain. This guide walks the cost math, the trademark requirements, the alternative paths, and a decision framework for whether VMC is right for your sending program.
- [Building Your Email Marketing SaaS](https://acellesend.com/kb/articles/building-your-email-marketing-saas): The technology side of an AcelleMail SaaS is solved. The hard part is the business: who you sell to, how you price, how you reach them, and how you keep them. This guide is the GTM + pricing playbook — opinionated, market-tested patterns for launching an email-marketing SaaS on the AcelleMail stack.
