It's been over a year and I didn't receive a single notification email from my web-server. It could either mean that my $6 VPS is amazing and hasn't gone down once this past year. Or it could mean that my health check service has gone down. Well this year, I have received emails from readers to tell me my website was down. So after doing some digging, I discovered that my health checker works just fine, but all emails it sends are being rejected by gmail. Unless you use a third party service, you have little to no chance of sending an email that gets delivered.
Every year, email services seem to become a tad bit more expensive. When I first started this website, sending emails to my subscribers was free on Mailchimp. Now it costs $45 a month. On Buttondown, as of this writing, it costs $29 a month. What are they doing that costs so much?
It seems like sending emails is impossibly hard, something you can almost never do yourself. You have to rely on established services if you want any guarantee that your email will be delivered. But is it really that complicated?
Emails, just like websites, use a basic communication protocol to function. For you to land on this website, your browser somehow communicated with my web server, did some negotiating, and then my server sent HTML data that your browser rendered on the page. But what about email? Is the process any different?
The short answer is no. Email and the web work in remarkably similar fashion. Here's the short version: In order to send me an email, your email client takes the email address you provide, connects to my server, does some negotiating, and then my server accepts the email content you intended to send and saves it. My email client will then take that saved content and notify me that I have a new message from you. That's it. That's how email works.
So what's the big fuss about? Why are email services charging $45 just to send ~1,500 emails? Why is it so expensive, while I can serve millions of requests a day on my web server for a fraction of the cost?
The short answer is spam.
But before we get to spam, let's get into the details I've omitted from the examples above. The negotiations. How similar email and web traffic really are?
The Web Request
When you type a URL into your browser and hit enter, here's what happens:
- DNS Lookup: Your browser asks a DNS server, "What's the IP address for this domain?" The DNS server responds with something like
192.168.1.1. - Connection: Your browser establishes a TCP connection with that IP address on port 80 (HTTP) or port 443 (HTTPS).
- Request: Your browser sends an HTTP request: "GET /blog-post HTTP/1.1"
- Response: My web server processes the request and sends back the HTML, CSS, and JavaScript that make up the page.
- Rendering: Your browser receives this data and renders it on your screen.
The entire exchange is direct, simple, and happens in milliseconds.
The Email
Now let's look at email. The process is similar:
- DNS Lookup: Your email client takes my email address (
user@example.com) and asks a DNS server, "What's the mail server for example.com?" The DNS server responds with an MX (Mail Exchange) record pointing to my mail server's address. - Connection: Your email client (or your email provider's server) establishes a TCP connection with my mail server on port 25 (SMTP) or port 587 (for authenticated SMTP).
- Negotiation (SMTP): Your server says "HELO, I have a message for user@example.com." My server responds: "OK, send it."
- Transfer: Your server sends the email content, headers, body, attachments, using the Simple Mail Transfer Protocol (SMTP).
- Storage: My mail server accepts the message and stores it in my mailbox, which can be a simple text file on the server.
- Retrieval: Later, when I open my email client, it connects to my server using IMAP (port 993) or POP3 (port 110) and asks, "Any new messages?" My server responds with your email, and my client displays it.
Both HTTP and email use DNS to find servers, establish TCP connections, exchange data using text-based protocols, and deliver content to the end user. They're built on the same fundamental internet technologies.
Enter the Problem: Spam
So if email is just as simple as serving a website, why does it cost so much more? The answer lies in a problem that both systems share but handle very differently. Unwanted third-party writes. Both web servers and email servers allow outside parties to send them data. Web servers accept form submissions, comments, API requests, and user-generated content. Email servers accept messages from any other email server on the internet.
In both cases, this openness creates an opportunity for abuse. Spam isn't unique to email, it's everywhere. My blog used to get around 6,000 spam comments on a daily basis. On the greater internet, you will see spam comments on blogs, spam account registrations, spam API calls, spam form submissions, and yes, spam emails.
The main difference is visibility.
The Invisible War Against Spam
When spam protection works well, it's invisible. You visit websites every day without realizing that behind the scenes. CAPTCHAs are blocking bot submissions, rate limiters are rejecting suspicious traffic, and content filters are catching spam comments before they're published.
You don't get to see the thousands of spam attempts that happen every day on my blog, because of some filtering I've implemented. On a well run web-server, the work is invisible. The same is true for email. A well-run email server silently:
- Checks sender reputation against blacklists
- Validates SPF, DKIM, and DMARC records
- Scans message content for spam signatures
- Filters out malicious attachments
- Quarantines suspicious senders
There is a massive amount of spam. In fact, spam accounts for roughly 45-50% of all email traffic globally. But when the system works, you simply don't see it.
So Why the Cost Difference?
If we can combat spam on the web without charging exorbitant fees, email spam shouldn't be that different. The technical challenges are very similar.
- Both require reputation systems
- Both need content filtering
- Both face distributed abuse
- Both require infrastructure to handle high volume
Yet a basic web server on a $5/month VPS can handle millions of requests with minimal spam-fighting overhead. Meanwhile, sending 1,500 emails costs $29-45 per month through commercial services.
The difference isn't purely technical. It's about reputation, deliverability networks, and the ecosystem that has evolved around email. Email providers have created a cartel-like system where your ability to reach inboxes depends on your server's reputation, which is nearly impossible to establish as a newcomer.
They've turned a technical problem (spam) into a business moat. And we're all paying for it.
Email isn't inherently more complex or expensive than web hosting. Both the protocols and the infrastructure are similar, and the spam problem exists in both domains. The cost difference is mostly artificial. It's the result of an ecosystem that has consolidated around a few major providers who control deliverability. It doesn't help that Intuit owns Mailchimp now.
Understanding this doesn't necessarily change the fact that you'll probably still need to pay for email services if you want reliable delivery. But it should make you question whether that $45 monthly bill is really justified by the technical costs involved. Or whether it's just the price of admission to a gatekept system.

Comments
There are no comments added yet.
Let's hear your thoughts