Have you tried self-hosting your own email recently?

https://news.idlestate.org/post/1793216

Have you tried self-hosting your own email recently? - idlestate

I tried maybe 15 years ago and it went about as well as you’d expect for back then. But I’m starting to get the itch again. Have any of you tried relatively recently? How impossible is it to get reliable deliverability to gmail and whatnot these days?

Yes. Using simple-nixos-mailserver as the foundation.

Really great experience, and have had no deliverability issues.

No. I do that for my job and wouldn’t do it for personal use. HA/redundancy/security is too expensive.

@azdle i've actually switched my business over to self-hosted email services.

I'm in the transition phase right now.

I have a local email server that has made life a lot easier.

My main motivations for doing so were...
- AI forced integration
- Microsoft and Google constantly changing things which break my services (scan to email for example).
- Privacy.

instead of going full open source. I decided to use Synology NAS Mail Plus.

I would recommend something like stalwart, which is just a single binary and works. Gives you a zonefile you can just copy paste into your DNS including all correct DMARC DKIM SPF and autodiscovery records. Setting it up yourself can be a bit time consuming and annoying.

Deliverability depends on where it is hosted, many VPC providers IP space is completely blocked in spam filters.

@[email protected] 15 years and counting, using different tech stacks. Currently Mailcow on a home server + a VPS for a static IP. No problems, but I also barely send emails (which is the source of 99% of problems), so YMMV.
I did mailinabox for a bit. Worked well but spam made me stop.

I was actually recently discussing self-hosting email on Matrix a while ago, so I'll just copy-paste below. Long story short, find the right existing email software you want to use, set it up correctly with a healthy IP address and domain (not blacklisted), the right DNS entries, and a PTR record, and it'll work just fine.

Honestly, I haven't had any issues with self-hosting email, and I've been doing it for the past 2 years. I think the trick is that you just need to set everything up correctly and then verify your setup with mail-tester.com to ensure all the headers, DNS entries, etc. are correct. There are some great projects that make it extremely easy to self-host, including Mailu github.com/mailu/mailu, Mailcow github.com/mailcow/mailcow-dockerized, Docker mailserver (https://github.com/docker-mailserver/docker-mailserver), Stalwart github.com/stalwartlabs/stalwart, and I'm sure more. I'm currently using Mailu, but I have been eyeing Stalwart, which has recently gotten quite popular and implements modern email protocols and does everything in Rust.

If I were you and just wanted to take a stab at self-hosting email, I would start with Stalwart and see how you like it. The only caveat is that it doesn't yet come with a webmail client, so if you wanted one, you'd have to separately add that to your setup.

Something you would need to think about though is your IP address. It must be static, and it should be in a healthy IP address range (not on any popular blacklists). You also need to be able to set up rDNS (reverse DNS) / PTR record, so you can point your IP address back to your email domain.

GitHub - docker-mailserver/docker-mailserver: Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container.

Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container. - docker-mailserver/docker-mailserver

GitHub

I am not OP but I love the idea of selhosting email. This is stopping me though:

... set it up correctly with a healthy IP address and domain (not blacklisted)

Any tips on how to accomplish this?

It’s quite likely that any given IP, unless you get one from shady VPS provider or something, is “clean”. And if it’s not it’s usually not that big of a deal to get it cleared from major blacklists (spamhaus, google and microsoft covers quite a lot). You just need to dig up proper forms to tell them that you’re a new owner of said IP and promise to play nice.

Same goes with domain names, but if you get a new one that’s a non-issue. Just set up SPF-records properly (and preferably DKIM/DMARC, but those aren’t strictly necessary and need a bit more than a single TXT-record) and you’re good to go.

And then you of course need to stay away from those lists. If you configure your SMTP to act as a open proxy you’ll be on every shitlist on the planet pretty quickly. So, reasonable measures against compromised account (passwords, firewalls, rate limits…) and against other threats (misconfigured/unsafe web service used for spam and stuff like that). Any of those alone are not too difficult to accomplish, but there’s quite a few things you need to get right.

OK, thank you. I'm sure this is why people always say self hosting email is not for beginners.

Email is the hardest thing to self-host, but it’s definitely doable. You’ll need a static IP, and you’ll need to talk to your ISP to make sure outbound connections on port 25 are open.

Set up your servers and your DNS settings (another commenter gave a good guide), then use this tool to check that DKIM and SPF are working and that you’re not seen as spam with SpamAssassin:

dkimvalidator.com

Once that’s done, take your static IP and check it with this tool:

mxtoolbox.com/blacklists.aspx

If it’s on any of the lists, you’ll need to go to those lists’ sites and try to get it removed. You might need to make an email address for “postmaster@yourdomain” at this point.

Beyond that, you may need to “warm up” your IP address, by sending email to yourself on various services (Gmail, Yahoo, Microsoft) and marking them as not spam.

Then you should be golden.

I had to do this for both my SMTP servers for Port87. If you use more than one server, this process gets a little harder, so probably stick to one at first.

DKIM, SPF, and Spam Assassin Validator - dkimvalidator.com

Validate your email's authenticity with ease! Check DKIM, SPF, and SpamAssassin scores instantly by sending an email to dkimvalidator.com. Secure your email integrity now.

I’m pretty sure gmail’s filters are per-user. I’ve had it react after just one flag/unflag, and I doubt that it would do that it would only take one action to change it for everyone.
It’s more of a signal that the IP address does send trustworthy email. AFAIK, IP reputation isn’t handled on a per-user basis. Domain reputation probably is.

As someone who tried to self-host it like a month ago (and seemingly still hasn’t got it fully working), I’ll just write out the overview of what I’ve done and let you (and others) comment on how correct and feasible it is.

Since my ISP doesn’t allow me to get a static IP address, I rented a VPS connection and made a wireguard tunnel from the VPS to my computer. This tunnel forwards traffic at all the necessary ports between the two machines. I really wasn’t familiar with all the necessary components for an entire mail server, so I chose mailcow since it packages everything into one single software (well, more like a bunch of docker containers). Another reason I went with mailcow was that I could easily find a github tutorial for how to set up mailcow with wireguard tunneling (it’s a bit outdated IMO, but the changes are minor). Mailcow also gives a nice portal interface listing out all the DNS entries you need to put in place to get it working perfectly.

In the end, I still see a few incoming emails getting dropped and reception time being an hour or so, and I’m not sure if it’s a problem with my tunnel or DNS or something else. But overall, I’d say it was much easier than setting up all the individual services myself.

Reminder that you can go for hybrid approaches; receive email and host IMAP/webmail yourself, and send emails through someone like AWS. I am not saying you can’t do SMTP yourself, but if you want to just dip your toes, it’s an option.

You get many of the advantages; you control your email addresses, you store all of the email and control backups, etc.

And another thing: you could also play with chatmail.at/relays ; which is pretty cool. I had read about Delta Chat, but decided to play with it recently and… it’s blown my mind.

Chatmail: Relays

Chatmail provides FOSS infrastructure for interoperable, secure, speedy and reliable end-to-end encrypted messaging. Check out clients as Arcane Chat, Bots or Delta Chat today!

Indeed. Owning your mail is a spectrum. I think it’s really best to transition from something like gmail to fully owning the stack in steps, over a significant amount of time. It will take a while to change over the address on everything a while anyway. No real need to go whole-hog right away and then burn out.
I do it. Postfix+dovecot+spamassassin managed with ISPConfig running on a VPS. Works just fine, but my domains already have a long-ish good reputation so that may play a part on my experience. Biggest headache is to keep things running, which occasionally means jumping trough hoops microsoft(mostly) and others throw at you by flagging your server as spam for no apparent reason.

I’ve been hosting my own email servers for 20 years without issue. But email systems were a huge part of my IT career so it was easy.

It works great if you have static IPs and know what you’re doing in terms of following best practices. If you’re missing those two things you’re going to have a bad time.

If you have the statics and want to learn, I’d recommend purchasing a test domain and getting the kinks worked out before you move a domain you care about to your own system.

Any wisdoms to share?
Yeah, don’t do it.

Lol. After professionally hosting email for 15 years I’m happy to let someone else handle it now.

About 90% of incoming mail will be spam and it will be your job to make sure you are doing good job of classifying it so you don’t get junk in your inbox and don’t lose real mail in the spam folder.

Then for outgoing mail you need to make sure SPF, DKIM and DMARC are all in order.

Then there is all the usual stuff of security updates, backups, monitoring, alerting, logging and having a plan for internet outages.

Yes, it’s all doable but I won’t expect it be “set and forget”. I expect there will be quite a bit of tuning with some possible spam and delivery problems while you get kinks worked out.

I really like the idea of having my own server, where I could have a bunch of cool stuff like email, VPN, Nextcloud, and so much more. The primary reason why I don’t have a server like that, is because I can’t trust myself to follow the best practices. For a while now, I’ve been thinking that I should hire a proper professional to take care of all that.

My hosting company has an outgoing mail server that I can use and as long as they’re doing the external DNS of the domain in question it works perfectly well.

Mostly though, from my own domain I am only sending automated messages from applications I host like NextCloud or Grafana from a “no-reply” address. There would almost certainly be privacy implications if I were to use it for personal mail.

So, if yoy are looking for a simple way to get email notifications from automated processes, this ain’t a bad way to go about it. If you want more, I would consider who can ready your outgoing mail and if you are ok with that.

I use YUNOhost on a VPS and it came with email out of the box. Which is just as well because I had no previous experience self-hosting!

I think I had a couple of emails get marked as spam in the beginning but everything has been totally fine for the last 2/3 years.

I host my own via Hetzner VPS and Mailcow. I use SMTP2GO as an outbound relay so I don’t have to worry about IP reputation issues. It’s all very straight-forward, no issues to speak of.

I host my mail with mailcow and it is almost set and forget. I only had a couple issues with some mail providers, but a small email exchange with the admins cleared that up.

Have a handful of users, that have not complained about anything not working or spam or whatever 🤷‍♂️

I recently set up the whole stack (Postfix, Dovecot, OpenDKIM) on a VPS. I wanted to do it from home, but my ISP won’t provide a static IP or open ports 25/465/587 for consumer customers, no exceptions.

It took me about two days to get everything working, but most of that was because I went in with very little knowledge of how email even actually works. If you’re looking for a learning experience, I’d say go for it. If you just want a working email setup quickly, I wouldn’t recommend it.

I haven’t noticed any deliverability issues so far. Just make sure you have SPF, DKIM, DMARC, and PTR records all set correctly from the start.

Which VPS provider are you using? Many of them end up blacklisted for mail delivery due to spammers using them.
GitHub - forwardemail/awesome-mail-server-providers: Comprehensive comparison of VPS and dedicated server providers for hosting mail servers (SMTP servers).

Comprehensive comparison of VPS and dedicated server providers for hosting mail servers (SMTP servers). - forwardemail/awesome-mail-server-providers

GitHub

Yes I do host my email myself since tens of years.

No I do not self-host it at home

See here wiki.gardiol.org/doku.php?id=email%3Astart (disclaimer: my wiki)

4] E-Mail Hosting

E-Mail Concepts

Good read. Now I want to do it too.

I’ll add your blog to my small search engine I you don’t mind (kukei.eu)

Also, you don’t need that cookie prompt. If you only use technical cookies and no tracking, no consent needed.

Please add, i don’t mind.

I know I don’t need the prompt, i just never remembered to disable it…

I have been self-hosting my mail server for the past 5 or 6 years with success. Recently my ISP decided to close port 25 so I have to use a third party to deliver my outgoing mail.
The fact that ISPs can do this should be a fkn outrage. But this is so far removed from what people care about. And so net neutrality gets eroded.

I don’t think they want to bother with the administration, they were forced to to stop anyone from spamming from random SMTP servers.

Because of dmarc and DKIM, we don’t really need this anymore, but there were good reasons for it.

I know some ISPs can enable it if you call them and ask them
Yes. Just today. And every day of the last 26 years.

I have not done so in the traditional sense in quite some years. My experience was that it was an increasing headache due to crashing into a wide variety of anti-spam efforts. Get email past one and crash into another.

Depending upon your use case -- using the "forward to a smarthost" feature in some mail server packages to forward to a mailserver run by a SMTP service provider with whom you have an account might work for you. Then it still looks to local software like you have a local mailserver.

If I were going to do a conventional, no-smarthost mailserver today, I think that I would probably start out by setting up a bunch of spam-filtering stuff --- SpamAssassin, I dunno what-all gets used these days on a "regular" account --- and then emailing stuff from my server and seeing what throws up red flags. That'd let me actually see the scoring and stuff that's killing email. Once I had it as clean as I could get it, I'd get a variety of people I know on different mail servers and ask them to respond back to a test email, and see what made it out.

Smart host - Wikipedia

I currently am and I have been hosting my own mail for the past several decades, so I can tell you from experience that it still is very much possible, but it has become significantly more complex than it used to be, not recommended for anyone who doesn’t have a particular interest in mail.

Selfhost several domains for over 25 years, from home, on a dynamic IP (though it hasn’t changed in a long time) and no PTR records, and I have literally had zero problems with blacklisting or dropped connections. I must live a charmed life, or have set up my DKIM/SPF/dmarc records correctly.

Currently using mailcow-dockerized and it’s lovely.

mailcow-dockerized is great, really makes email setup so much easier.

Do you ever send mails to Gmail and Office365? Do you get through the spam filter without PTR record?

Do you ever send mails to Gmail and Office365

All the time, never had an issue. I get dmarc reports constantly since I set my dmarc to notify, not just failed, but I’ve never seen PTR checked on Microsoft or google. It passes SPF and DKIM (presumably spam but you don’t get a report for that) and they let it through. I used to think it was because I’ve had most of my domains for a long time, but the couple times I’ve brought a new domain online, they seem to be fine with them.

Now they might be passed because my old domains have never had an issue and they get associated because they come from the same IP?

My ISP would let me set a PTR if I wanted but I haven’t bothered because it doesn’t seem to be an issue.

If I had to make one suggestion, I would use a trusted third party to relay outbound e-mail such as AWS SES, mxroute, sendgrid, mailgun, etc. When I was looking for a job a few years ago, I found many potential employers’ systems would flag my e-mails as junk or simply delete them, and I had to revert to gmail. My second suggestion is to properly set up TLS/SSL for security, and SPF, DKIM, and DMARC for maximum deliverability. I’m currently using a deprecated application, but I’ve been testing mailcow which seems alright.
Beware that Mailgun doesn’t differentiate between transactional and marketing emails, this could hurt your deliverability.
I tried, but my IMAP server recently stopped working. It also got flagged as spam by literally everyone I sent an email to.

I’ve been self hosting email successfully for 20 years. My goto article for this question:

poolp.org/…/you-should-not-run-your-mail-server-b…

TLDR;

  • Mail is not hard: people keep repeating that because they read it, not because they tried it
  • Big Mailer Corps are quite happy with that myth, it keeps their userbase growing
  • Big Mailer Corps control a large percentage of the e-mail address space which is good for none of us
  • It’s ok that people have their e-mails hosted at Big Mailer Corps as long as there’s enough people outside too
You should not run your mail server because mail is hard

TL;DR: - Mail is not hard: people keep repeating that because they read it, not because they tried it - Big Mailer Corps are quite happy with that myth, it keeps their userbase growing - Big Mailer Corps control a large percentage of the e-mail address space which is good for none of us - It's ok that people have their e-mails hosted at Big Mailer Corps as long as there's enough people outside too EDIT (2019-12-15) # A practical guide to set up a mail exchanger was published on this blog.

poolp.org

OK SPAM is not the issue but my mails will not reach my users at Big Mailer Corps

The article’s answer to this one is handwavey “there are rules that spammers can’t meet, but you can do it just fine”. This is not the whole story by far. This is a more comprehensive overview of why it doesn’t work:

cfenollosa.com/…/after-self-hosting-my-email-for-…

On a dynamic IP connection, you can very easily have had the address flagged already. If the one you have now isn’t flagged, the one you get later might be. Debugging intermittent problems is not fun.

They also like it when your domain has shown good behavior already. I can do that because my domain has existed for over 20 years and I’ve hosted email on it in one form or another for that whole time. A person starting out on their own is not going to be able to do that.

This doesn’t necessarily mean that the big providers are the only option. There are smaller providers, like Fastmail.

After self-hosting my email for twenty-three years I have thrown in the towel. The oligopoly has won.

Many companies have been trying to disrupt email by making it proprietary. So far, they have failed. Email keeps being an open protocol. Hurray? No hurray. Email is not distributed anymore. You just cannot create another first-class node of this ne

Never read this article before, thanks for sharing!

I tried the all-in-one server Mox two years ago and it just worked. In fact, I’m still productively using it to this day.

The spam filter could be a little better, but it does a good enough job IMO.

Mox: modern, secure, all-in-one mail server

Been self hosting email for a good while now and it’s been largely painless. My emails are not getting marked spam either. Although my only outgoing mails are to FOSS mailing lists and occasionally to individuals, not for anything business related.

I would say that if self hosting email sounds like something you’d be interested in, then it probably is worthwhile for you. I like being able to configure my mail server exactly the way I want it, and I have some server side scripts I wrote for server side mail processing, which is useful as I have several different mail clients so it makes sense to do processing on the server rather than trying to configure it on my many clients. It definitely falls into the “poweruser” category of activities but I’ve had fun and I enjoy my digital sovereignty.

Did it last month on a home IP and not having any problems so far. I have been required to sign out of blacklists but it was easy. I have been delivering hundreds of emails every day
Used mailcow for years but recently switched to stalwart just for cutting edge features like jmap.

I have self hosted my email since 2006. I gave up on self hosting outgoing mail in 2021, but I still keep the server up for incoming mail, and still set up throwaway accounts on there.

The hard part of hosting email is getting Google and Microsoft to accept outgoing mail. Tons of businesses that do not have visibly “outlook.com” or “gmail.com” addresses are still hosted by those servers.

I had SPF, DKIM, and a static datacenter IP address with no reputation problems. I still couldn’t get through to Microsoft, not even in people’s junk mail directory, until they manually whitelisted my address. Microsoft didn’t allow them to whitelist a whole domain. Google was a little easier, but they added new demands monthly.

Yes! I started like a year ago and am very happy. I strongly recommend mox. It’s lightweight and the configuration makes it very clear how to set it up properly. I had some weird issue with sending mail to Apple accounts but (believe it or not) I reached out to Apple and they seemed to fix it.
Mox: modern, secure, all-in-one mail server

I’m not an apple hater, but that’s kinda insane considering how hostile they are towards developers.

There are a few complete mail servers out there now that simplify everything into one package.

docker-mailserver is a great choice in my opinion.

github.com/docker-mailserver/docker-mailserver

GitHub - docker-mailserver/docker-mailserver: Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container.

Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container. - docker-mailserver/docker-mailserver

GitHub