I run my own email server with Postfix, Dovecot, Rspamd, Roundcube webmail, and a Sqlite database.
I use it for my personal mail along with some clients.
It was quite easy to setup by following this guide: https://workaround.org/ispmail/buster/.
There's also an ansible playbook by the author to automate all of that for you.
Other solid solutions include Mail-in-a-box and Mailcow. DuckDuckGo them to learn more.
A lot of people say that you shouldn't waste your precious time hosting email. Then, these same people won't hesitate to spend countless hours browsing Pornhub or Netflix and playing video games.
Forget about these losers and roll your own email for fun. The last thing you want is to be on your deathbed regretting not having had your own personal mail server.