Sending 20 million emails a month, about 667,000 a day, costs roughly $2,750 a month on Amazon SES with dedicated IPs, $5,000 to $10,000 a month on a negotiated enterprise relay, or about $170 a month in hosting on servers you own after a one-time build. Over 3 years that is about $99,000, $180,000 to $360,000, and $9,117. The bigger decision at this volume is not price. It is who on your team owns reputation, because every route needs that person.
The monthly cost of 20 million emails
| Route | Monthly cost | How it is priced | Dedicated IPs | Contract |
|---|---|---|---|---|
| Amazon SES | about $2,750 | $0.10 per 1,000 + $24.95 per IP | about 30, you buy them | none |
| Enterprise relay (SendGrid, Mailgun, SparkPost) | $5,000 to $10,000, estimate | negotiated per 1,000 | block included | usually 12 months |
| Contact-priced platforms (Klaviyo, Mailchimp) | sales quote | by list size, not sends | add-on | monthly or annual |
| Own servers, Custom build | about $170 hosting | flat | 60, yours | none |
The SES line is the only one you can check without a sales call. The Amazon SES pricing page lists $0.10 per 1,000 emails and $24.95 per dedicated IP per month. At 20 million that is $2,000 in send fees and about $749 for 30 IPs.
The relay range is an estimate. At 10 million a month, enterprise rates usually land between $0.30 and $0.60 per 1,000, as we showed in the cost of 10 million emails a month. Doubling volume buys a discount, so $0.25 to $0.50 per 1,000 is a fair planning range, which is $5,000 to $10,000.
Where an SES bill at 20 million a month goes
Why relays stop publishing prices
Above a few million a month, every large relay moves you to an enterprise tier. The price on the page disappears, and a contract takes its place.
| Contract term | Typical shape | What it costs you |
|---|---|---|
| Commit | 12 months of volume, paid either way | a slow month still bills the commit |
| Rate | negotiated per 1,000 | depends on how hard you push |
| Overage | higher rate above the commit | growth you did not forecast |
| Bundled extras | IP block, account manager, support | part of why the rate is higher than SES |
The commit is the number to read closely. A 240 million email annual commit at $0.35 per 1,000 is $84,000 whether you send 20 million a month or 14 million.
How many IPs 20 million a month needs
| Step | Number |
|---|---|
| Emails a month | 20,000,000 |
| Emails a day | about 667,000 |
| Comfortable volume per warmed IP | 15,000 to 25,000 a day |
| IPs needed | about 27 to 45 |
| Custom build | 60 IPs, about 11,100 per IP a day |
More IPs than the minimum is deliberate. If Microsoft starts deferring one IP, the others absorb the load without slowing the whole send. Our guide on how many IPs you need for your volume explains the per-provider limits behind these numbers.
How 20 million a month breaks down per IP
The 3-year view
Monthly prices hide how far the routes drift apart.
| Route | Year 1 | 3 years | Notes |
|---|---|---|---|
| Amazon SES, 30 IPs | about $33,000 | about $99,000 | plus engineering to build bounce handling |
| Enterprise relay | $60,000 to $120,000 | $180,000 to $360,000 | commit and renewal risk |
| Custom build, own servers | about $5,037 | about $9,117 | $2,997 once + $170 a month |
The own-server saving against SES is about $2,580 a month, so the $2,997 build pays for itself in under two months. Against a relay it pays back in weeks.
Cumulative cost over 3 years at 20 million emails a month
The cost nobody puts in the table
Every route needs a person. At 667,000 emails a day, a 5% bounce day is over 33,000 addresses, and a complaint spike can move Gmail's view of your domain in a single afternoon. Google's sender guidelines hold every bulk sender to a spam rate under 0.3%, with 0.1% as the real target.
| Task | SES | Enterprise relay | Own servers |
|---|---|---|---|
| Bounce and complaint processing | you build it | provided | provided by the setup |
| Suppression lists | you build it | provided | provided by the setup |
| Reputation monitoring | you | shared with vendor | you |
| Blocklist checks and delisting | you | vendor helps | you |
| Rough staff time | half to one person | about half a person | half to one person |
The staff line is similar on every route, so it does not change which route is cheaper. It changes whether you are ready. Do not move 20 million a month to anything without a named owner.
Is self-hosting worth it at this volume?
On cost alone, yes. The same logic held at 1 million a month and gets stronger with every million after it. The real questions are practical:
- Do you have an owner? Someone who reads Postmaster Tools and SNDS every week.
- Is the list clean? Under 2% bounces and 0.1% complaints per send, before you move.
- Can you warm up? 60 new IPs take 4 to 8 weeks to reach full volume. Keep the current route running in parallel.
- Do you need a contract for compliance? Some procurement teams require a vendor SLA. Your own servers do not come with one from a relay.
If the answer to the first three is yes, the move pays back fast. SES vs a dedicated SMTP server covers the trade-offs in more detail, and the 5 million a month breakdown shows the same math at a smaller tier.
How BulkEmailSetup helps
Our Custom build is sized for this volume: 12 SMTP servers with 60 rotating IPs on one dedicated host, up to 1,000,000 emails a day. We set up SPF, DKIM, DMARC and PTR on every domain, bounce handling, a campaign platform and automatic IP warm-up, with priority support.
| Plan | One-time fee | Emails per day | Servers | IPs | Hosting you pay your host |
|---|---|---|---|---|---|
| Custom | $2,997 | 1,000,000 | 12 | 60 | about $170 a month |
| Advance | $1,199 | 200,000 | 3 | 15 | about $49 a month |
At 667,000 a day you use about two thirds of the Custom build's capacity, which leaves room to grow. No monthly fee to us and no contact limit. See the Custom plan or all pricing.
Frequently asked questions
What does 20 million emails a month cost?
Roughly $2,750 a month on Amazon SES ($2,000 in send fees at $0.10 per 1,000, plus about 30 dedicated IPs at $24.95 each), $5,000 to $10,000 a month on a negotiated enterprise relay contract, and about $170 a month in hosting on a dedicated build you own, after a one-time setup. Staff time sits on top of every option.
Which ESPs quote 20 million a month?
All the large relays do, but only through sales. SendGrid Premier, Mailgun's enterprise tier and SparkPost move you to negotiated pricing well before 20 million a month, usually with a 12-month commit and a block of dedicated IPs. Amazon SES is the exception: it publishes $0.10 per 1,000 and $24.95 per dedicated IP, with no contract.
How many dedicated IPs does 20M a month need?
About 27 to 45 warmed IPs. 20 million a month is about 667,000 a day, and a warmed IP comfortably carries 15,000 to 25,000 a day across Gmail, Microsoft and Yahoo. More IPs give headroom for bad days and spread risk. BulkEmailSetup's Custom build uses 60 IPs across 12 servers, about 11,100 emails per IP per day at this volume.
Is self-hosting worth it at 20 million?
On cost, clearly. A Custom build is $2,997 one-time plus about $170 a month in hosting, against roughly $2,750 a month on SES or $5,000 and up on a relay. The saving on SES alone pays back the build in under two months. The catch is ownership: someone on your team must watch reputation, bounces and complaints every week.
What does 20 million emails a month cost over 3 years?
About $99,000 on Amazon SES with 30 dedicated IPs, $180,000 to $360,000 on an enterprise relay at $5,000 to $10,000 a month, and about $9,117 on a Custom build ($2,997 once plus $170 a month for 36 months). Staff time is excluded from all three, and it is similar across them.
How many people does it take to run 20 million emails a month?
Plan for half to one full-time person whichever route you choose. On SES they build bounce processing, suppression and alerts. On a relay they manage list quality and the vendor. On your own servers they watch reputation, queues and blocklists. At 667,000 a day, a 5% bounce day is over 33,000 addresses, so this work cannot be part-time guesswork.



