Detailed view of Ethernet and VGA ports on a server highlighting connectivity features.๐Ÿ“ท Brett Sayles / Unsplash
Infrastructure

How to Build a 10,000-Email-Per-Day Sending Machine for Under $50/Month

Cleanmails
ยทMay 10, 2026ยท8 min read

Most people think sending 10,000 cold emails a day requires expensive SaaS tools or enterprise contracts. I built a high volume email sending setup that does exactly that for under $50/month โ€” here's the exact stack.

Most people think sending 10,000 cold emails a day requires a $500/month SaaS contract or a dedicated email team. I did it for $47/month โ€” and the setup took one weekend.

Before I walk you through it, let me be clear about something: volume without infrastructure is suicide for your domains. I've watched agencies burn through 40 domains in a month because they tried to brute-force volume without thinking about the plumbing. This guide is about doing it right โ€” not just doing it fast.

Why Most High Volume Email Sending Setups Fail Before They Start

Here's the counterintuitive truth: the deliverability problem isn't usually the email platform. It's the math people ignore.

If you're sending 10,000 emails/day from 5 domains, that's 2,000 emails per domain per day. Google and Microsoft start throttling aggressively above 500 sends/day per inbox. Do that math: you actually need 20+ active inboxes to hit 10k/day safely, assuming ~500 sends per inbox.

Most setups fail because people buy 3 domains, set up 2 inboxes each, and wonder why they're hitting spam on day 4.

Here's the actual breakdown I use:

Daily Volume Target Inboxes Needed Domains Needed Cost Estimate
1,000/day 3โ€“4 2 ~$10/mo
5,000/day 10โ€“12 5โ€“6 ~$25/mo
10,000/day 20โ€“25 10โ€“12 ~$45โ€“50/mo
25,000/day 50โ€“60 25โ€“30 ~$110/mo

Those domain costs assume ~$3โ€“4/month per domain (Namecheap or Cloudflare Registrar). Inbox costs are near-zero if you're running your own SMTP, which I'll cover below.

The Exact Stack I Use for $47/Month

Here's the full infrastructure breakdown:

Domains: 10 aged or freshly registered domains @ ~$3/month each = $30/month

  • 3 from Namecheap (.io or .co variants of your main brand)
  • 3 from Cloudflare Registrar (cheapest registrar, period)
  • 4 rotated in as backups

SMTP: Self-hosted on a $5โ€“6/month VPS (Hetzner CX11 or DigitalOcean Basic Droplet) = $6/month

Email Platform: Cleanmails one-time license = $0/month ongoing (after the $497 one-time)

  • Inbuilt SMTP connection manager
  • Native sender rotation across all inboxes
  • Cadence builder so you're not blasting everything at once

Email Validation: Free tier of the Bulk Email Verifier for list hygiene before every campaign

Total monthly recurring: $36โ€“47/month depending on domain registrar and VPS tier.

Step-by-Step: Building the Infrastructure

Step 1: Domain Architecture (Day 1, 2 Hours)

Never use your primary domain for cold outreach. Ever. Buy sending domains that are close to your main brand but clearly secondary:

  • Main brand: acmegrowth.com
  • Sending domains: acme-outreach.com, getacmegrowth.com, tryacme.io, acmehq.co

For each domain, you need to set up:

  1. SPF record โ€” authorizes your SMTP server IP
  2. DKIM โ€” cryptographic signature on outgoing mail
  3. DMARC โ€” policy record that tells receivers what to do with failures
  4. Custom tracking subdomain (optional but recommended for click tracking)

Use the SPF/DKIM/DMARC Checker to verify each domain before you send a single email. I've seen people go live with broken DKIM for 3 weeks and wonder why open rates are tanking. Don't be that person.

For a deeper dive on why Google's 2024 authentication changes make this non-negotiable, read this breakdown of the new email authentication rules.

Step 2: Inbox Setup Per Domain (Day 1โ€“2, 3 Hours)

For a 10,000/day setup, I run 2 inboxes per domain across 10 domains = 20 inboxes.

Naming convention matters. Avoid:

  • info@, contact@, sales@ โ€” these get filtered aggressively

Use:

  • james@, sarah@, m.chen@ โ€” real-name formats perform better and bypass some spam triggers

Each inbox needs:

  • A complete profile (display name, reply-to set correctly)
  • A warm-up period of 3โ€“4 weeks minimum before you hit full volume

I've written a full warm-up protocol in this post on warming up a new cold email domain โ€” follow it exactly. Skipping warm-up is the #1 reason high-volume setups get burned.

Step 3: SMTP Configuration (Day 2, 2 Hours)

On your VPS, you want Postfix configured with:

  • Rate limiting per domain โ€” no more than 500 outbound per hour per sending IP
  • Reverse DNS (PTR record) matching your hostname
  • TLS enforced on all outgoing connections

Basic Postfix rate limiting in main.cf:

# Limit outbound delivery rate
default_destination_rate_delay = 2s
default_destination_concurrency_limit = 5
smtp_destination_concurrency_limit = 2

This slows delivery slightly but dramatically reduces the chance of triggering rate-limit bounces at the receiving server. At 10k/day, you have time โ€” you don't need to blast everything in 90 minutes.

Also: set up dedicated IPs if your VPS provider allows it. Hetzner lets you add IPs for ~$1/month. Running 2โ€“3 IPs with separate PTR records means one IP getting temporarily flagged doesn't take down your whole operation.

Step 4: List Hygiene โ€” The Step Everyone Skips

Sending 10,000 emails/day with a dirty list is like flooring a car with the handbrake on. Your bounce rate will crater your sender reputation within days.

My rule: never send to a list with >2% estimated bounce rate. Before every campaign, I run the full list through the Bulk Email Verifier and remove:

  • Hard bounces (invalid addresses)
  • Catch-all addresses (risky, exclude unless you have tight targeting)
  • Role-based addresses (admin@, support@, webmaster@)
  • Disposable email domains

For ongoing list management at scale, the CSV Email List Cleaner handles bulk deduplication and format normalization before verification.

A clean 8,000-email list will always outperform a dirty 15,000-email list. I've run the comparison multiple times.

Step 5: Sender Rotation Configuration

This is where most DIY setups fall apart. Random rotation isn't enough โ€” you need intelligent rotation that distributes volume based on inbox age, domain health, and daily send caps.

The logic I use:

  • New inboxes (0โ€“30 days): max 50 sends/day, increasing by 25/day weekly
  • Established inboxes (30โ€“90 days): max 200 sends/day
  • Mature inboxes (90+ days): max 500 sends/day

If you're managing this manually across 20 inboxes, you'll lose your mind. Optimizing sender rotation for high-volume outreach covers the full framework โ€” including how to weight rotation based on domain reputation signals.

Cleanmails handles this natively โ€” you define per-inbox daily caps, and the platform distributes sends automatically across your sender pool without you manually babysitting it.

Step 6: Cadence Structure for 10k/Day

Don't send all 10,000 on Day 1. Structure your cadence like this:

Week 1 Campaign Launch:

  • Day 1: Send to 30% of list (3,000 contacts)
  • Day 3: Follow-up to non-openers from Day 1
  • Day 5: Send to next 30% of list
  • Day 7: Follow-up sequence continues

This approach lets you:

  1. Catch deliverability problems early before they affect the whole list
  2. Spread volume across days so you're not spiking send patterns
  3. React to bounce data before it compounds

The Surprising Part: Compliance Is Cheaper Than Cleanup

Here's the take most people don't want to hear: setting up unsubscribe handling and bounce processing isn't optional at this volume โ€” it's infrastructure.

At 10k/day, if you're not automatically suppressing unsubscribes and processing bounces back into your list tool, you will re-contact unsubscribes, you will hammer invalid addresses repeatedly, and you will get your IPs listed on Spamhaus within 60 days.

Build the suppression list from day one. Every bounce, every unsubscribe, every spam complaint goes into a permanent suppression file that's checked before every send.

For a full breakdown of bounce management at scale, this guide on cold email bounce rate management is the most thorough resource I've found.

What This Setup Actually Costs Over 12 Months

Item One-Time Monthly 12-Month Total
Domains (10) โ€” $30 $360
VPS (Hetzner) โ€” $6 $72
Cleanmails license $497 $0 $497
Email verification โ€” ~$5 $60
Total $497 ~$41 $989

Compare that to Instantly or Smartlead at $97โ€“$297/month for comparable volume limits: you're looking at $1,164โ€“$3,564/year. The self-hosted approach pays for itself in 3โ€“5 months and then you're essentially running for free.

If you want to see why the SaaS model specifically destroys agency unit economics at scale, this post on why monthly cold email subscriptions are killing your ROI lays it out with the math.

30-Minute Quick-Start Checklist

If you want to start building this today:

  • Register 2โ€“3 sending domains on Cloudflare Registrar
  • Spin up a $6/month Hetzner VPS and install Postfix
  • Set SPF, DKIM, and DMARC on each domain โ€” verify with the DNS Checker
  • Create 2 named inboxes per domain
  • Start warm-up sequences (do not skip this)
  • Upload your list to the Bulk Email Verifier and remove all invalid addresses
  • Configure daily send caps per inbox based on age
  • Set up bounce and unsubscribe suppression before your first send

That's the foundation. Everything else โ€” copy, targeting, sequencing โ€” is built on top of this. Get the infrastructure wrong and none of the rest matters.


Related:

InfrastructureCold EmailSMTPDeliverabilityScaling

Stop paying monthly for cold email.

Cleanmails โ€” self-hosted, unlimited everything, $497 one-time.

Get Cleanmails
Related