At 100,000 emails a day, which is 3 million a month, the routes split into three price bands: Amazon SES at roughly $480 a month in send fees, mid-market relays like Mailgun and SendGrid at $1,000 to $1,800 once dedicated IPs are added, and a self-hosted or managed dedicated server with no per-email fee at all. You need 3 to 4 warmed IPs whichever route you pick, and 6 to 8 weeks to get there from cold. The right choice comes down to one question: does anyone on your team have time to own deliverability daily?
This article compares the routes. If you have already picked one and want the build, read the infrastructure you need to send 100K emails per day instead.
The six routes, scored
| Route | Monthly cost | Setup time | IPs included | Warm-up owner | Suspension risk | Campaign tooling |
|---|---|---|---|---|---|---|
| Amazon SES | ~$480 + $24.95/IP | 1-2 weeks | none, paid extra | you | moderate | none |
| Mailgun Scale | $1,000-1,500 | 2-3 days | 1, more paid | shared with support | moderate | API and logs |
| SendGrid Premier | custom, $1,200-1,800 | 1-2 weeks | negotiated | provider | moderate | full platform |
| SMTP2GO high tier | $900-1,400 | 1 day | paid add-on | provider | low | reporting only |
| Self-hosted Postfix | $120-300 | 40-60 hrs | 3-4, yours | you | none | none |
| Managed dedicated | one-time build | days, done for you | 3-15, yours | included | none | pair with your own |
Two things jump out of that table. First, the cheap per-email route (SES) and the cheap total-cost route (self-hosted) are the two that hand you the most work. Second, suspension risk only disappears on the routes where the IPs are actually yours, because there is no shared pool left to protect.
SES deserves the specific numbers. Amazon charges $0.16 per 1,000 emails for the first 10 million a month on the Essentials plan, so 3 million is $480, and standard dedicated IPs are $24.95 per IP per month (SES pricing). Four IPs takes you from $480 to about $580 a month, before you have written a line of bounce-handling code.
The throughput maths people get wrong
100,000 a day averages out to nothing frightening. That average is also the wrong number to build against.
| Measure | Figure | Why it matters |
|---|---|---|
| Per day | 100,000 | the headline |
| Per hour, averaged | ~4,200 | only true if you trickle |
| Per second, averaged | ~1.2 | misleadingly small |
| Realistic peak rate needed | 20-30/sec | a blast clears in ~1 hour |
| Peak day if you send weekly | 400,000+ | four bursts, not 30 even days |
Nobody sends 1.2 messages a second for 24 hours. A campaign goes out in a window, and at 1.2 a second it takes a day to leave the queue.
Size for 20 to 30 messages a second. At 25 a second a 100,000-recipient campaign clears in about 67 minutes, and a 4 vCPU server with an NVMe disk does that without breathing hard. What caps you is per-receiver limits, which is why IP count matters more than CPU count.
How many IPs, and why 3 to 4
| Daily volume | Warmed IPs | Per-IP load | Headroom |
|---|---|---|---|
| 25,000 | 1 | 25,000 | none, single point of failure |
| 50,000 | 2 | 25,000 | thin |
| 100,000 | 3-4 | 25,000-33,000 | one IP can be lost |
| 250,000 | 8-10 | 25,000-31,000 | comfortable |
| 500,000 | 15-20 | 25,000-33,000 | rotation pool |
A healthy warmed IP carries 25,000 to 35,000 a day across a mixed audience before deferrals start showing up. Microsoft is the tightest of the big three, Yahoo behaves similarly, Gmail is more forgiving on IP but harder on domain. The per-provider detail is in how many emails per day per IP.
Three IPs will physically send 100,000 a day. Four is the number I would actually buy. The difference is what happens when one IP picks up a Spamhaus CSS or Barracuda listing on a Tuesday morning: with four, the other three absorb the traffic while you delist; with three, you are running at 75% capacity and every remaining IP is being pushed past its comfortable ceiling, which is exactly how a one-IP problem becomes a three-IP problem.
Warm-up: 6 to 8 weeks from cold
Every route in the comparison table needs this except the shared-pool relays, and those trade the warm-up for a reputation you do not control.
| Week | Active IPs | Daily volume | What you are watching |
|---|---|---|---|
| 1 | 2 | 500 to 3,000 | 4xx deferral rate, any 5xx |
| 2 | 2 | 3,000 to 10,000 | Postmaster Tools domain reputation |
| 3-4 | 3 | 10,000 to 30,000 | per-receiver deferrals, Microsoft first |
| 5-6 | 4 | 30,000 to 65,000 | complaint rate per campaign |
| 7-8 | 4 | 65,000 to 100,000 | full peak-day rehearsal |
Two rules that decide whether this works. Send to your most engaged segment first, because warm-up traffic that gets opened builds reputation while warm-up traffic that gets ignored just builds volume history. And freeze the ramp on any deferral spike rather than pushing through it, deferrals are the receiver telling you the pace is wrong and they always get louder if ignored.
Eight weeks feels slow. Restarting on a fresh IP set after burning the first one takes eight weeks too, plus a damaged domain reputation you carry into the second attempt. The full per-IP schedule is at our IP warm-up schedule.
What actually breaks at 100K a day
At 25,000 a day you can run on goodwill and a cron job. At 100,000 four things stop being optional.
Bounce processing. 100,000 sends against a 2% bounce rate is 2,000 bounce messages a day. Parse them automatically, suppress hard bounces on the first 5xx user-unknown, suppress soft bounces after 3 to 5 consecutive failures. Doing this by eye is not a job anyone will do on day 40.
Queue backlog. When Microsoft starts deferring, the queue grows while new campaigns keep loading into it. Without per-receiver queue caps and a backoff policy, one deferring receiver starves delivery to everyone else. This is the single most common failure in a self-built stack.
Feedback loop handling. Register for Microsoft JMRP and Yahoo's complaint feed. Every complaint becomes a permanent suppression within minutes, not at the end of the week. Gmail's requirement for senders over 5,000 a day is a spam rate below 0.30% with 0.10% as the working target, plus SPF, DKIM, DMARC and one-click unsubscribe (Google's sender guidelines). At 100,000 a day, 0.30% is 300 complaints, and you can cross it in one campaign to a stale segment.
Per-receiver rate limits. Gmail, Microsoft and Yahoo each throttle differently, and a single global send rate hits all three walls at once. You need per-destination connection limits and message rates, which is transport maps in Postfix, native config in PowerMTA or KumoMTA. Postfix vs Exim vs Haraka covers how each handles this.
The 12-month cost, all six routes
Monthly figures hide the shape of the decision. Here is a year at 3 million emails a month.
| Route | Year 1 | Year 2 | What is not in the number |
|---|---|---|---|
| Amazon SES + 4 IPs | ~$7,000 | ~$7,000 | 100+ hrs building tooling, monitoring |
| Mailgun Scale | $12,000-18,000 | same or higher | validation add-ons, overage |
| SendGrid Premier | $14,000-21,600 | rises with volume | dedicated IP negotiation |
| SMTP2GO high tier | $10,800-16,800 | same | limited campaign tooling |
| Self-hosted Postfix | $1,440-3,600 | $1,440-3,600 | 40-60 hrs build, 10-20 hrs/month |
| Managed dedicated | one-time build + hosting | hosting only | pair with your own campaign software |
The gap between top and bottom is roughly 10x, and it is almost entirely a labour-versus-money trade. SendGrid at $18,000 a year buys a platform and a support queue. Self-hosted at $2,400 buys a server, and you supply the rest.
The relay routes also have a property the fixed-cost routes do not: the bill grows with you. Go from 3 million to 5 million a month and SES adds about $320, SendGrid adds a tier. A dedicated server costs the same either way. What 2 million emails a month costs shows the same comparison one tier down.
The hidden line items
The advertised price is not the invoice at this volume.
| Line item | Typical cost | Applies to |
|---|---|---|
| Dedicated IPs | $24.95-80 per IP/month | SES, Mailgun, SendGrid, SMTP2GO |
| Overage above tier | higher per-email than the tier | all relays |
| List validation | $2-8 per 1,000 addresses | all routes |
| Inbox placement testing | $50-200/month | all routes |
| Blocklist monitoring | free to $30/month | all routes |
| Engineering time | 10-20 hrs/month | SES, self-hosted |
Four dedicated IPs at $25 each is $1,200 a year on top of SES's $5,760. On SendGrid the IPs come through account management rather than a public price, which usually means they are folded into a Premier quote you cannot compare against anything.
What each route is actually good at
Amazon SES is right when you have engineers and only need sending. $480 a month for 3 million is unmatched on raw price. You get no campaign builder, no subscriber management, no bounce dashboard past the API, and no cushion when a complaint spike puts the account under review. Budget the tooling honestly, because 100 hours of engineering wipes out most of year one's saving.
Mailgun and SendGrid are what you buy when $1,500 a month is easier to approve than a build project. The platform is real, the logs are good, the support exists. You are renting reputation on infrastructure shared with senders you cannot see, and the provider polices you tighter than Gmail does because your complaints land on their other customers.
Self-hosted Postfix is genuinely the cheapest recurring cost, and the right answer when a named person owns it. The setup is a weekend. The warm-up is two months of someone watching deferral rates. It goes wrong when it is nobody's actual job, at which point the IPs degrade quietly and you find out from a sales complaint.
Managed dedicated is the same infrastructure as self-hosted with the build and warm-up done for you. You still supply the campaign software, MailWizz, Sendy, Mautic or Listmonk all pair with it fine.
The recommendation
Split it on ops time, because that is the variable that decides the outcome.
| Your situation | Pick | Why |
|---|---|---|
| Engineers with spare capacity, sending only | Amazon SES | cheapest per email, you build the rest |
| Nobody owns deliverability, need it live | Mailgun or SMTP2GO | fastest to running, highest recurring cost |
| One person will own it daily, cost matters | Self-hosted Postfix | ~$2,400/year all in |
| Want owned IPs without the build project | Managed dedicated | fixed cost, no per-email fee, no suspension risk |
| Growing past 200,000 a day soon | Dedicated, either flavour | relay pricing gets punishing above 5M/month |
If you are still on a shared relay and reading this because the bill crossed $1,000, the honest read is that at 3 million a month you are paying rent on a reputation that stays with the provider when you leave. The per-email model made sense at 100,000 a month. It stops making sense somewhere between 1 and 3 million, and 100,000 a day is comfortably past that line.
How BulkEmailSetup helps
We build the dedicated route as a one-time job: your own server, your own IPs, full SPF/DKIM/DMARC/PTR configuration, MTA tuning with per-receiver throttling, automated bounce and feedback-loop handling, and a warm-up plan sized for your peak day rather than your daily average. The IPs are yours, so there is no shared pool to protect and no policy team deciding whether your volume is too risky for other customers.
Basic starts at $549 one-time, covering 1 SMTP server, 3 dedicated IPs, 25,000 emails/day and unlimited contacts. Higher tiers scale to 15 IPs and 200,000 emails/day, which covers 100,000 a day with headroom for campaign peaks. See pricing for the full breakdown.
Frequently asked questions
What is the best SMTP for 100k emails per day?
It depends on whether you have ops time. Amazon SES is cheapest at roughly $480 a month in send fees plus $24.95 per dedicated IP, but you build monitoring, bounce handling and campaign tooling yourself. A managed dedicated SMTP server is the better total cost if nobody on your team will own warm-up daily, because it is a one-time build with no per-email fee.
How much does it cost to send 100,000 emails a day?
Between roughly $400 and $2,500 a month. Amazon SES runs about $480 in send fees at $0.16 per 1,000 for the first 10 million. Mailgun and SendGrid land at $1,000 to $1,800 at 3 million a month once dedicated IPs are added. Self-hosted Postfix on a VPS is $120 to $300 a month in hardware plus your time.
How many IPs do I need for 100,000 emails a day?
Three to four warmed dedicated IPs. Each healthy IP comfortably carries 25,000 to 35,000 a day across a mixed Gmail, Microsoft and Yahoo audience. Four IPs gives you headroom so that one blocklist listing does not cut your throughput, which three does not.
How long does it take to warm up to 100,000 emails a day?
Six to eight weeks from cold IPs, ramping roughly 30% every two days per IP and staggering the pool so IPs come online in stages. Rushing it produces 4xx deferrals at Microsoft and Yahoo within the first fortnight, and a burned IP set means starting over on new addresses.
What sending rate does 100k per day actually need?
100,000 a day is about 4,200 an hour or 1.2 messages a second averaged, but real campaigns are bursty. Size the MTA for 20 to 30 messages a second so a 100,000-recipient blast clears in about an hour rather than trickling all day. Average throughput is the wrong number to build against.
Will Amazon SES suspend me at 100,000 emails a day?
It can. SES puts accounts under review when the complaint rate approaches 0.1% or the bounce rate exceeds 5%, and at 3 million sends a month a single bad segment crosses that fast. Your reputation also sits partly in a shared pool unless you pay for dedicated IPs at $24.95 each per month.
Is self-hosted Postfix good enough for 100k a day?
Yes on throughput, a 4 vCPU server with NVMe disk handles 100,000 a day easily. The work is per-receiver throttling, bounce parsing, feedback loop registration and blocklist monitoring, which is 10 to 20 hours a month once running and 40 to 60 hours to build.
Does 100,000 a day need dedicated IPs?
Yes. The threshold where dedicated IPs pay off sits near 100,000 a month, and you are 30 times past it. Every mid-market relay charges $25 to $80 per dedicated IP per month at this volume anyway, so you end up paying for IPs you do not own.



