Just take a look at https://docs.mailcow.email/
This runs from a small box with everything included. It gives you all the tools and config needed for running a secure and feature rich email service. Webmail, some sort of exchange emulation, webcalender on top of a solid postfix/dovecot install with rspamd as spam filter. Everything is configurable via a nice web UI.
After 15y running my own mail service and editing a lot of config files, I use this piece of free and open software and find it very good. All you need is a box somewhere in the internet. Running from a homelab will instantly fail, expect you have a static ip.
That's not true. I run my own email server for 15+ years now. There are only 5 of 6 mailboxes. I never had a problem with any other host. Not Microsoft, not Google. Maybe, the reason was, the IP was also 15+ years assigned to the same domain. I have only known senders, family and friends.
The last days, the hole subnet was blacklisted on some blacklists. So that was not my fault, the growing business of the provider lead to this situation. Eventually I moved to a very small provider and run a mail cow on a vps. On a fresh IP without any reputation. Same 'customers', the only issue was with T-Online in Germany, but a mail solved this. To keep this kind of issues away, I use sendgrid as a SMTP forward. With only a few mails per day, this is free. Mailcow provides a lot of features, rspam filtering, a lot better and faster than spamassin. Active sync, imap, webmail, everything. Solid backup, runs without any problem.