NewPer-mailbox ramp with bounce auto-pause

Cold outbound from your own mailboxes. No warmup pool.

Outbox is a self-hosted sequencer for operators who run real outbound. Connect your own Gmail, Microsoft 365, or SMTP/IMAP mailboxes, import verified data, and send on human intervals. Deliverability comes from authentication and a slow volume ramp — not from a pool of domains emailing each other.

Single admin · self-hosted · credentials encrypted at rest · tracking off by default

The difference

Warmup pools are domains emailing themselves. Providers already know.

A warmup pool is a closed loop. Your domain sends to other warmup accounts, they send back, everyone marks everyone “important.” It looks like engagement. It is the easiest pattern in the world for Gmail and Microsoft to detect, and they devalue it. You pay monthly to teach the filters that your reputation is manufactured.

Outbox has no pool. Reputation is built the way the providers actually reward — and the result is real, and yours.

Warmup pool
Bots emailing bots — detected and devalued.
discounted
The five fundamentals
  • AUTHSPF, DKIM, and DMARC verified before you send a single email
  • DATAEvery address verified, deduped, and checked against your suppression list
  • RAMPEach mailbox starts low and climbs on a curve you control — never a burst
  • INTERVALSHuman gaps between sends with randomized jitter and strict windows
  • STOPA genuine reply pauses the entire sequence for that lead, instantly

Self-hosted. Single admin. Your data never leaves your infrastructure.

Mailboxes
Gmail · M365 · any SMTP/IMAP
Secrets
AES-256-GCM at rest
Tracking
Off by default
Deploy
Docker · Coolify · VPS
How it works

Three steps from a clean list to a threaded reply.

1

Connect your mailboxes

Add Gmail, Microsoft 365, or any custom SMTP and IMAP server. Outbox authenticates against both before it lets you save, so a broken mailbox never makes it into rotation. Credentials are encrypted at rest.

smtp.gmail.com:587 verified
imap.gmail.com:993 verified
encrypted at rest
2

Import and verify your data

Upload a CSV. Outbox verifies every address, removes duplicates, and drops anything on your suppression list before a lead enters a campaign. Bad data is the fastest way to burn a domain, so it never gets in.

imported4,812
unverified removed137
suppressed44
3

Sequence, route, and send

Build multi-step sequences with variables, spintax, and weighted A/B variants. The scheduler routes each send by the prospect's MX, respects every ramp cap and sending window, waits out the interval plus jitter, then sends one email at a time.

$ scheduler tick
→ route lead.mx=google → google mailbox
→ ramp 38/45 · window open · interval ok
→ enqueue send · step 1 · variant A
The engine

A dense command center, built for people who run outbound daily.

Every email rendered once, stably, per lead

Variables with fallbacks, spintax for natural variation, and weighted A/B variants — all seeded, so a re-render produces the exact same email. Follow-ups thread into the original conversation instead of starting a new one.

{{first_name|there}} · {spin|rotate|vary} · A/B weighted · threaded follow-ups

It pauses before you would have noticed

Sends balance round-robin across eligible mailboxes and route by MX for better placement. If a mailbox's bounce rate crosses your threshold, Outbox pauses it on its own — sending stays inside your windows with human intervals, never a burst.

MX routing · round-robin · bounce auto-pause · windows + jitter

Every reply, one place, in thread

Replies from all your mailboxes land in a single inbox, each threaded with the sequence that produced it. The IMAP poller tells a genuine reply apart from an out-of-office, an auto-reply, and a bounce — and only a real reply stops the sequence.

unified inbox · IMAP classification · genuine / OOO / auto / bounce

Numbers by campaign, step, and mailbox

See sent, bounced, replied, and reply rate broken down per campaign, per sequence step, and per mailbox — so you can tell which step earns answers and which mailbox is dragging placement. No tracking pixels.

per-campaign · per-step · per-mailbox · reply-rate · no open/click pixels
Deliverability

The boring fundamentals are the entire game.

Inbox placement is not a growth hack. It is correct authentication, clean data, a sane volume curve, and stopping the moment someone replies. Outbox enforces all of it by default and shows you the proof.

  • Bounce auto-pausea mailbox pauses when its bounce rate crosses your threshold
  • Hard capan absolute per-mailbox daily ceiling nothing can exceed
  • Sending windowssends only inside the hours you set, with randomized intervals
  • One-click unsubscribeRFC 8058 List-Unsubscribe headers on every send
Domain authentication
SPF PASS
DKIM PASS
DMARC PASS (p=quarantine)
Bounce rate1.2% · healthy
0%auto-pause threshold →4%
Ownership

You own the data, the mailboxes, and the machine.

Data
Stays on your infrastructure
Secrets
AES-256-GCM, encrypted at rest
Tracking
Off by default
Unsubscribe
RFC 8058 one-click

Outbox is self-hosted and inspectable. Read the engine, run it on your own box, and decide for yourself — that's the only proof this kind of tool should ask you to trust.

Read the source on GitHub
Pricing

Free to run yourself. The full product.

Recommended
Self-host
Free

Your VPS, your mailboxes, your data.

  • Every feature, no seat limits, single admin
  • Gmail, Microsoft 365, any SMTP/IMAP
  • Deploy with Docker, Coolify, or any VPS
  • Simulation mode to try it with no real mailbox
Self-host free docker compose up -d --build
Managed
Soon

We host, update, and back it up. You just send.

  • Everything in Self-host
  • Managed hosting, backups, and updates
  • Domain authentication assistance
  • Priority support
Get notified
Questions

Straight answers.

No more than they would with a warmup pool, and usually less. Spam placement is driven by authentication, data quality, send volume, and engagement. Outbox handles authentication checks, verifies your data, ramps volume slowly, and stops on reply. A warmup pool adds fake engagement that providers increasingly detect and discount — so it isn't doing the job you think you're paying for.

Each mailbox starts at a low daily floor and climbs on a ramp curve you set. A typical new mailbox reaches meaningful volume in a few weeks. It is deliberately not instant, because instant is how domains get burned.

For Gmail or Google Workspace, 2-Step Verification turned on and an App Password. For Microsoft 365, SMTP AUTH enabled on the tenant. For anything else, standard SMTP and IMAP credentials. Outbox tests both connections before saving and encrypts the credentials at rest.

Tracking pixels and rewritten links are a known deliverability liability, and open data is unreliable since Apple Mail Privacy Protection. Outbox measures what actually matters: bounces and genuine replies, broken down per campaign, step, and mailbox.

You need to be comfortable deploying a Docker container on a VPS, or using a platform like Coolify that does it for you. If you can follow a quick-start and set a few environment variables, you can run Outbox.

Yes. Simulation mode runs the entire engine end to end — scheduling, routing, ramping, replies, bounces — but logs instead of sending and fabricates inbound, so you can watch how it behaves before connecting an account. It's the default on first boot.

Two things. You self-host it, so your data and mailbox credentials stay on your own infrastructure. And there is no warmup pool and no per-inbox warmup fee — the deliverability work is done by fundamentals instead: authentication, clean data, a slow ramp, and stop-on-reply.

Run real outbound without renting your reputation.

Self-host the full product in minutes. Connect a mailbox, or watch the whole engine run in simulation first.

Single admin · encrypted at rest · no warmup pool, ever.