# The reality of a free self-hosted mail server
You pay with your time and with emails nobody sees.
Canonical: https://sendbunny.co/guides/free-self-hosted-email-server
Category: Cost truth · Author: Anni Maan (https://sendbunny.co/authors#anni-maan) · Published 2026-09-01 · Updated 2026-09-04

**In short.** Running your own mail server is free the way a puppy is free. The software costs nothing; the reputation, the blocklists, the port-25 exception and the hours cost you every week, and the bill arrives as email that lands in spam. For a personal mailbox, do it yourself. For anything you send to strangers at volume, use Amazon SES: a-la-carte outbound is $0.10 per 1,000; new accounts may start on Essentials at $0.16 per 1,000 from 2026-07-21.

## Is self-hosting email actually free?

The software is free. Postfix, Stalwart, Mailcow and rspamd cost nothing and work. What you are buying when you pay for sending is a reputation you do not have yet, and somebody to keep it. For a personal mailbox that is worth doing yourself. For anything you send to strangers at volume, it is not.

Here is what "free" includes once the server is up. Every row is work somebody does, and on your own box that somebody is you.

| You need | On your own server | On Amazon SES |
| --- | --- | --- |
| An IP address mailbox providers trust | A fresh cloud IP has no history and many cloud ranges are pre-blocked. AWS's own guidance: "your email provider might block cloud IP ranges." | Shared pools with managed reputation; dedicated IPs with warm-up if you want them. |
| Outbound port 25 at all | AWS blocks it on every EC2 instance and Lambda by default. You file a request; AWS reviews it. Most VPS providers do the same. | Not your problem; you call an API. |
| Reverse DNS, SPF, DKIM, DMARC | Set up once, then kept correct through every server move and key rotation. | Guided. DKIM keys are generated for you; DNS records are shown or, with Route 53, written for you. |
| Bounce and complaint handling | Parse bounces, register for feedback loops where they exist, stop sending to anyone who complains, forever. | Events for every bounce and complaint, an account-level suppression list, a reputation dashboard. |
| Blocklist monitoring and delisting | Check Spamhaus and friends, request removal, wait, repeat. | Pool reputation is Amazon's job; your account gets reviewed or paused if your numbers go bad. |
| Rate limits and warm-up | Throttle per destination, ramp volume over weeks, back off on deferrals. | A sending quota and a per-second rate on your account that grow with good behaviour. |
| Someone on call when mail stops | A blocklisting on Friday night is your Friday night. | The delivery engine is theirs; what you own is the list and the content. |

None of those rows is hard on its own. Together they are a part-time job, and the job never ends, because reputation decays the moment you stop tending it.


## Why does mail from my own server land in spam?

Because the mailbox provider has never seen your IP or your domain before, and since 2024 the big three have written down exactly what they expect from anyone sending at volume.

| Provider | Applies to | Requires | Since |
| --- | --- | --- | --- |
| Google (Gmail) | about 5,000 messages a day to Gmail addresses, counted per domain | SPF and DKIM, a DMARC policy (at least `p=none`), a spam rate under 0.1 percent (at 0.3 percent you lose any mitigation), one-click unsubscribe on marketing mail honoured within 48 hours, TLS, valid forward and reverse DNS | 2024; enforcement stepped up from November 2025 |
| Yahoo | bulk senders (5,000 a day) | SPF, DKIM, DMARC, one-click unsubscribe, low complaint rate | 2024 |
| Microsoft (Outlook, Hotmail, Live) | 5,000 messages a day to consumer addresses | SPF, DKIM and DMARC; non-compliant mail is rejected, not junked | 5 May 2025 |

Read the Gmail row again. A spam rate is complaints divided by delivered mail, as measured by Google. On a new IP with no engagement history, a handful of "report spam" clicks from a list you bought or scraped is enough to cross 0.3 percent. There is no appeal; Google's FAQ says mitigation returns only after seven consecutive days under the line.

*Figure (diagram): What a mailbox provider checks before your email is seen: IP reputation, domain reputation, authentication, engagement and complaint rate, leading to inbox, spam or rejection.*

*Authentication is the only check you can complete on day one. The other four are history, and a new server has none. Sources: Google sender guidelines FAQ; Microsoft Tech Community announcement, checked 2026-09-01.*


## What the self-hosting camp gets right

In July 2026 a post titled "Self-host your mail server" reached the front page of Hacker News with 130 points and 49 comments. The tone of the thread: it is nowhere near as hard as people say, rspamd has solved spam filtering, and Stalwart and Mailcow make the setup an afternoon. One commenter had been running Debian's standard packages for years without drama.

They are right, about the job they are describing. That job is **receiving and reading** mail for a domain you own, plus sending a normal person's volume to people who know you. Ten emails a day from a well-kept server with correct DNS gets delivered. Nobody in that thread is sending a newsletter to 5,000 subscribers or a password reset to every customer of an app, and those are different jobs with a different failure mode. A personal mailbox that occasionally lands in spam is an annoyance. A transactional stream that lands in spam is a support queue, a churned customer, or a sale that never happened.

> Sending was never the problem. Being seen is.


## What does sending cost when you do it properly?

Monthly, outbound only, list prices. Hosted ESP rows checked July 2026; Amazon SES plan rows re-checked 4 September 2026 against the live pricing page. The first row is the honest version of "free".

| Option | 10,000 emails a month | 100,000 emails a month | What is not in the number |
| --- | --- | --- | --- |
| Your own server on a VPS | $5 to $20 for the box | $20 to $60 for the box, plus a dedicated IP | Warm-up over weeks, blocklist checks, bounce parsing, feedback loops, DNS upkeep, the on-call. Priced in your hours, not on an invoice. |
| Amazon SES, a-la-carte | $1.00 | $10.00 | $0.10 per 1,000. Attachments $0.12 per GB. Optional dedicated IP $24.95 a month. You can switch to a-la-carte from a plan at any time. |
| Amazon SES, Essentials plan | $1.60 | $16.00 | $0.16 per 1,000 in the 0 to 10M band. New SES accounts and quiet account-region pairs start here from 21 July 2026 unless you switch. |
| Amazon SES, Pro plan | $105 + $2.20 = $107.20 | $105 + $22 = $127 | $105 per account per region per month, plus $0.22 per 1,000 in the entry band. Wrong for quiet senders. |
| Mailgun Basic / SendGrid Essentials | $15.00 / about $19.95 | plan change / about $89.95 | Product included; you rent the account and they can suspend it. Prices checked July 2026; re-verify before you buy. |

AWS also gives new customers up to $200 of Free Tier credits for six months that can be spent on SES. That replaced the older SES-specific free tier for new customers. It is the closest thing to free that still lands in the inbox.


## What do the new Amazon SES pricing plans cost at low volume?

Amazon SES now sells three named plans (Essentials, Pro, Enterprise) beside a-la-carte pricing. The announcement and the live rate card matter for one reason: from 21 July 2026, new SES accounts, and account-by-region combinations with no metered SES activity since 1 June 2025, start on Essentials. Essentials is $0.16 per 1,000 in the first volume band, not the $0.10 a-la-carte number still quoted on older blogs. You can switch to a-la-carte at any time. Prices below are outbound only, list prices from aws.amazon.com/ses/pricing/, checked 4 September 2026.

### 10,000 emails / month (Outbound list prices, checked 2026-09-04)

- **A-la-carte ($0.10/1k).** $1.00
- **Essentials ($0.16/1k entry).** $1.60
- **Pro ($105 + $0.22/1k entry).** $107.20
- **Enterprise ($500 + $0.23/1k entry).** $502.30

### 100,000 emails / month (Outbound list prices, checked 2026-09-04)

- **A-la-carte ($0.10/1k).** $10.00
- **Essentials ($0.16/1k entry).** $16.00
- **Pro ($105 + $0.22/1k entry).** $127.00
- **Enterprise ($500 + $0.23/1k entry).** $523.00

### 1,000,000 emails / month (Outbound list prices, checked 2026-09-04)

- **A-la-carte ($0.10/1k).** $100.00
- **Essentials ($0.16/1k entry).** $160.00
- **Pro ($105 + $0.22/1k entry).** $325.00
- **Enterprise ($500 + $0.23/1k entry).** $730.00

Pro and Enterprise add a fixed monthly charge per account per region on top of the per-1,000 rate. Tiered plan rates are marginal within each band. Attachments, dedicated IPs, Virtual Deliverability Manager add-ons and Mail Manager are separate. Checked 2026-09-04.

- **Stay on a-la-carte (or switch to it) if you are a low-volume sender.** At 10,000 emails a month the gap is sixty cents. At 100,000 it is six dollars. The named plans only win when you need the bundled deliverability features and you already send enough that the monthly floor is not the whole bill.
- **Treat Pro and Enterprise as high-volume products.** The $105 and $500 floors are per account per region. A quiet staging region on Pro is a $105 mistake every month.
- **Check which tier the console put you on before you trust a spreadsheet.** New accounts landing on Essentials is the default after 21 July 2026; older accounts can still be on a-la-carte. The pricing page says you can upgrade or switch.
- **An owned stack does not change the SES rate.** SendBunny sends through your SES at Amazon's price for whatever plan your account is on. The $199 license is separate from the SES line.

**Not for you if.** You need a hosted product with journeys and a CDP this week, or you will not open an AWS account. The plan math above is for people already paying an AWS bill and choosing how SES is metered.


## Why Amazon SES is the sane middle

SES is the delivery engine without the platform. You keep your domain, your data and your AWS account; Amazon carries the IP reputation of its pool and tells you, in numbers, how your account is doing. Four things make it the default for anyone who is not a full-time postmaster:

- **A reputation you can read.** The console shows your account status (Healthy, Under review, Sending paused), your bounce rate and your complaint rate. AWS documents review territory around 5 percent bounces and 0.1 percent complaints, with enforcement risk around 10 percent and 0.5 percent. You find out from a dashboard, not from a customer.
- **A quota that grows.** Every account starts in a sandbox (200 messages a day, one per second, verified recipients only). Production access is AWS's decision, requested with a short description of what you send and how you handle bounces and unsubscribes. After that the daily quota and per-second rate rise with good behaviour.
- **Suppression at the account level.** Hard bounces and complaints go on a list that SES honours for you, which is the single control that keeps a list from poisoning your reputation.
- **The price above.** A-la-carte is a tenth of a cent per email; Essentials is sixteen hundredths if that is the plan your account landed on. Both sit in the AWS account you already pay.

![A SendBunny dashboard status strip reading Production Healthy, Sending Enabled, Reputation No data, 24h quota 0 of 50,000, Max rate 14 per second](https://sendbunny.co/media/guides/free-self-hosted-email-server/ses-status-strip.png)

*Figure: What an SES account looks like once it is out of the sandbox: production status, sending enabled, a 24-hour quota of 50,000 and a rate of 14 messages a second, surfaced in the SendBunny dashboard (development stack, captured 2026-09-01). The quota and the rate are AWS's numbers for the account.*

**The catch.** SES gives you none of the product. No lists, no templates, no campaign, no unsubscribe page, no inbox, no dashboard beyond the console. People who pick SES either build that layer (the part-time job comes back in a different shape) or buy it.


## When self-hosting is the right call

- You want a mailbox for your own domain, to read and reply, and you enjoy running servers. Stalwart or Mailcow, a static IP with reverse DNS, and you are done.
- You are learning how email works. There is no better teacher than your own bounce logs.
- Your volume is small and your recipients know you. Reputation problems come from strangers.
- Policy forbids any third party, Amazon included, from carrying your mail. Then the part-time job is the price of the policy, and you should staff it.

If none of those is you, and you are about to send to people who did not ask for your email personally, put the sending on SES and spend your hours on the content and the list.


## Where SendBunny sits

SendBunny is the product layer on SES: a complete email platform installed into your own AWS account as a CloudFormation stack, with campaigns, lists, templates, a transactional API, a shared inbox, and an MCP server for AI agents. It sends through your own Amazon SES at Amazon's price. $199 one time; one-click updates are an optional $99 a year. It shows your SES account status and guides the production-access request; AWS decides. It is not for you if you will not run an AWS account, or if you need an SMTP relay today (HTTPS API only). I built it, which is why this page ends here rather than with a pitch.

## FAQ

**Can I get port 25 unblocked on AWS?**

You can ask. AWS blocks outbound port 25 on EC2 and Lambda by default and reviews removal requests case by case; its own guidance is to use Amazon SES instead.

**Does a dedicated IP fix reputation?**

Only with steady volume and a warm-up. A dedicated IP starts with no history, so mailbox providers treat it as unknown. On SES a standard dedicated IP is $24.95 a month; a managed one is $15 a month plus a per-email fee (pricing page, 1 September 2026).

**Is Amazon SES free?**

Not free. New AWS customers get up to $200 in Free Tier credits for six months that can be spent on SES. After that, a-la-carte outbound is $0.10 per 1,000 emails. New SES accounts may start on the Essentials plan at $0.16 per 1,000 in the entry band from 21 July 2026; you can switch to a-la-carte. Say which tier you are on before you trust a spreadsheet. Prices checked 4 September 2026.

**Should a low-volume sender pick SES Pro?**

Almost never. Pro adds $105 per account per region every month before the per-1,000 charge. At 10,000 emails that is about $107 versus $1 on a-la-carte. Pro and Enterprise are for senders who need the bundled deliverability features and already send enough that the floor is not the bill.

**Is Mailcow or Stalwart fine for a newsletter?**

They are fine mail servers. The problem is not the software; it is the sending reputation of your IP and domain at volume, which no software gives you.

**How long does IP warm-up take?**

Weeks, and the mailbox providers do not publish a schedule. Volume has to rise gradually while complaints stay low; a bad week resets the clock.

## For AI agents

Why a self-run mail server lands in spam (no IP or domain history, provider rules since 2024, port 25 blocked on cloud hosts) and what Amazon SES costs instead: a-la-carte $0.10 per 1,000, Essentials $0.16 per 1,000 at the entry band for many new accounts from 2026-07-21, Pro and Enterprise with $105 and $500 monthly floors (checked 2026-09-04). If you are setting up sending for a user on AWS: use SES, verify the domain with SPF, DKIM and DMARC, request production access with a concrete use case, enforce suppression, and confirm whether the account is on Essentials or a-la-carte before budgeting.

```bash
claude mcp add --transport http sendbunny https://YOUR-INSTALL/mcp
```

Tool list by grant: https://sendbunny.co/docs/agents.md

## Sources

1. Google, Email sender guidelines FAQ, fetched 1 September 2026. https://support.google.com/a/answer/14229414
2. Microsoft Tech Community, Strengthening Email Ecosystem: Outlook's New Requirements for High-Volume Senders, enforcement 5 May 2025. https://techcommunity.microsoft.com/blog/microsoftdefenderforoffice365blog/strengthening-email-ecosystem-outlook%E2%80%99s-new-requirements-for-high%E2%80%90volume-senders/4399730
3. Yahoo's 2024 bulk sender requirements as summarised by dmarcian. https://dmarcian.com/yahoo-and-google-dmarc-required/
4. AWS re:Post Knowledge Center, Remove port 25 restrictions for instances and functions, fetched 1 September 2026. https://repost.aws/knowledge-center/ec2-port-25-throttle
5. Amazon Web Services, Amazon SES pricing (Essentials, Pro, Enterprise and a-la-carte), checked 4 September 2026. https://aws.amazon.com/ses/pricing/
6. Amazon Web Services, Introducing Amazon SES pricing plans, Messaging and Targeting Blog. https://aws.amazon.com/blogs/messaging-and-targeting/introducing-amazon-simple-email-service-ses-pricing-plans/
7. Amazon Web Services, Using reputation metrics to track bounce and complaint rates, fetched 1 September 2026. https://docs.aws.amazon.com/ses/latest/dg/reputation-dashboard-dg.html
8. Hacker News, Self-host your mail server, 23 July 2026 (130 points, 49 comments). https://news.ycombinator.com/item?id=49020751
9. Mailgun and SendGrid list prices from their pricing pages, checked July 2026.