27 - Jul - 2026

I self-host almost everything but email is the one thing I refuse to

I started my self-hosting journey a few years ago, and the rule for the services I host is that if it works on my end, it works, period. My email service was the only entity that ever broke that rule. When I set it up, I hoped to get the same win I got from my other projects. It seemed to hold up for a few days, but when I actually used it, it dawned on me that successfully setting up a mail server isn’t the same as getting email delivered. This made me realize why I wouldn’t be self-hosting email again.

Running the server was the easy part

Everything worked until I started relying on it

Returned email showing delivery failure due to blocking of port 25

It took me far less time than I expected to get my Mailcow running on a small VPS. Once I had pointed my MX record at the server, I used Let’s Encrypt to set up TLS, then I added an SPF record (this was something every guide preached). In a single afternoon, mail was flowing between my own accounts. I sent a test from my phone and another from my laptop; both arrived on my phone. At this point, I was convinced email was perfectly set up.

For a few days, it seemed to hold up well. Even looking through the logs, I saw messages accepted and handed off successfully. For every other service I self-host, that’s all the confirmation I need that everything is fine. After all, before hosting email, I had hosted Jellyfin, Nextcloud, Vaultwarden, and a host of other services. Each time, I watched them boot, confirmed they worked, and moved on to other things.

However, for email, the moment of realization came when I tried using it like a real inbox. I replied to a friend’s message, and days later, there was no response. I searched through spam and the typical folders where emails disappear, but there was nothing. Although my reply left my server, it never appeared in the recipient’s inbox.

I had discovered the difference between a mail server that works and an actually usable email account. They are two sides of the same coin.

Trust can’t be self-hosted

A working server still has to earn everyone else’s confidence

Validating SPF DKIM and DMARC
Afam Onyimadu / MUO

When I decided to self-host my mail server, I had no clue that SPF, DKIM, and DMARC don’t deliver your emails. They are email authentication standards that prove you are who you say you are. Even after the receiving server confirms these checks, it may still decide your email has no place in the inbox. Authentication and trust are needed for reliable email delivery, and authentication was the only one I truly controlled.

Trust is a reputation largely built outside your server. A fresh VPS or a residential IP generally has no reputation. It may even be impossible to send outbound mail on port 25 on some ISPs. Setting up reverse DNS often requires opening a support ticket and hoping the person handling it understands. The difference between my setup and established email providers is that they send mail from IP ranges that have years of established sending history. They usually have teams that monitor it around the clock, with the primary goal of maintaining their reputation.

Understanding this asymmetry is the whole story of why email is the one thing I will never host, at least not again:

Self-hosting most services

Self-hosting email

Success depends on your server

Success depends on other people’s servers too

Mostly affects only you

Affects everyone you’re trying to reach

Easy to verify locally

Real success is inbox delivery, not local logs

Problems stay inside your network

Reputation is decided somewhere you can’t see

It started becoming clear why I never got a response to the email I sent to my friend. Sadly, this wasn’t a bug I could fix. A server elsewhere had decided it didn’t trust my server yet.

Email isn’t a hobby

One fix, one new responsibility

Once I had discovered the importance of reputation, I tried to fix things. First, I needed to see which recipients were dropping my messages, so I started parsing XML DMARC reports. I also took several weeks to meticulously warm up my fresh IP address by slowly sending email batches to friends whom I could call to rescue the messages from their spam folders. While each of these seemed to help, they also became activities that I needed to keep doing.

Tasks such as renewing certificates, maintaining DKIM keys, and occasionally adjusting spam-scoring rules when legitimate senders get flagged made the activity list larger than I had expected. I also had to check logs regularly, since I didn’t want to risk rebuilding my reputation from scratch if my server were compromised.

This was a growing stack of management that the rest of my home lab never demanded. I host my photos on Immich, and if the service is down for a week, the worst case is a couple of days without access to my photos. I can always fix Nextcloud whenever I have time after a bad update. A bad weekend for your email service isn’t very forgiving. No one who emails me knows or cares if my server is having a day off. It needed too much babysitting, and that took away the fun of self-hosting.

Email is the only exception I’m happy to make

It finally clicked why people warn against self-hosting email. However, I still keep my domain. I only route mail through third parties. While still maintaining my own address and domain, I avoid most of the reputation-related trouble. You could use services such as​​​​​​​ Proton Mail and PurelyMail if you are weighing the same tradeoff to keep your domain without battling deliverability.

I’m still a homelabber, but I have drawn a line. I’ll never host a mail server again.

Leave a Reply

Your email address will not be published. Required fields are marked *