I've had this setup for a couple of years now and it's not failed me. Support TLS, SPF, spam checking, DKIM, can support multiple domains and aliases. Basically anything you can imagine. And, despite the FUD you might hear about not using a cloud service, my mails don't get magically lost into people's spam filters. The initial configuration/learning is steep, but I pretty much never have to touch it once it was working.
1. You need your own domain
2. If you're new to Linux, I'd set up something simpler first, like a web server just to familiarize yourself with your domain tools and your distribution's configuration.
3. A good half-way solution for migrating from Gmail is to set your own server as MX for your domain and forward received E-mail to Gmail. That way you can get familiar with setting up your MTA without worrying about delivery. And, you can start encouraging people to start sending mail to your @domain.com address rather than @gmail.com address. I had this set-up for years before taking the plunge and hosting everything myself.
Be warned, Gmail applies very aggressive filtering to your incoming forwarded mail, even before it reaches your "Spam" folder. This was one of the primary reasons I decided to self-host: I was finally able to compare the list of E-mails I received, through looking at my logs, to the E-mails that ended up making it to Gmail. Gmail's (presumably) spam-filtering was filtering out an unacceptable amount of false positives.
4. Set up your host to deliver locally. You'll be able to verify it's working by using standard unix mail tools running on your host.
5. Set up something nicer for delivery like IMAP, and get your favorite mail client to work. I use Dovecot, but there are plenty of options.
6. Any bells and whistles you want. TLS, SPF, DKIM, Spamassassin, multiple domains. I found at first I was getting a massive amount of spam (thanks for fixing this for me for years, Gmail!) but after a few months of training, Spamassassin is very good and I'm back down to not seeing much anymore.
Hope that helps. To your other question. I spend $5 a month for my VPS, and I can host a lot more than E-mail there.
Are you sure? I am running mailinabox and have multiple domains and accounts with no issue.
I used to run a Sovereign box.
It served me well for 2-3 years, but it got too cumbersome to maintain: they changed their approach to various configuation things (for the better, I'm sure), and threatened to break my setup in the process.
All told, it felt like it had missed the sweet spot between pre-configuration and flexibility, in the end not quite giving you either.
> IMHO sovereign puts too many attack vectors on a single machine.
I turned off most of the attack vectors (I didn't need all the bells and whistles). But yes, they tried too hard, and over-complicated the setup as a result.
It deploys mail server based on modern software stack on your box and you can customize it to fit your demands using recipes suitable for well-known software.
https://mailcow.email/ - dockerized, works with multiple domains, sogo for groupware. Compared to mailinabox's single disk, it has 6 docker volumes to keep track of.
https://mailu.io/ - dockerized, it has a section on kubernetes deployments, which i find weird, but I guess could make sense for companies
https://mailinabox.email/ - no docker, no multiple domains, roundcube, nextcloud for groupware. Main disadvantage or advantage, depending on your perspective is that you need a mailinabox server per domain.
And then this is the more hands on version, which I guess would be sovereign as ansible deployment.
https://github.com/sovereign/sovereign
IMHO sovereign puts too many attack vectors on a single machine.