https://docker-mailserver.github.io/docker-mailserver/edge/e...
https://docker-mailserver.github.io/docker-mailserver/edge/e...
I don't have a web UI for it at all (though I briefly integrated with NextCloud Mail for that) since nowadays I just use Thunderbird or a similar client for that. Personally, the aspect that I like the most is their approach to doing some common actions, in the form of their setup script, you don't even have to connect to the container to use it: https://docker-mailserver.github.io/docker-mailserver/v11.3/...
The aspect that I like the least? Well, just how mail servers are architected in general, they even have a nice page on this: https://docker-mailserver.github.io/docker-mailserver/v11.3/... (things get even more complicated once you introduce additional security solutions into the mix, like ClamAV, SpamAssassin, or others). Projects like docker-mailserver or Mail-in-a-Box abstract some of that complexity away from you which is good as someone who doesn't want to sink hundreds of hours into it...
However, it's still there in those packaged and preconfigured/integrated components, rather than as one monolithic package that does most of the stuff you want, if you would compare some of the web servers out there against how many of the mail servers work, for example. Then again, something like Apache2 has bunches of modules anyways, so maybe that comparison isn't as cut and dry. Regardless, it feels like even with the scripts and the documentation, it's just a time bomb that's waiting for X years to go off when the pieces will decide to no longer play nicely with one another, and then you'll really need to dig into it, like when your Linux distro bootloader decides to die one day.
Outside of walled gardens, that might be one of the reasons to do a double take before putting everything on your new self-hosted mail server. Test drive it first for a few months/years, gradually move stuff over (and be sure to have tested backups that you can actually restore/access when necessary), maybe look into recovery addresses in other providers where applicable or where it makes sense and so on. If your mail client backs everything up locally, the server going down shouldn't be the end of the world and technically you could just move over to a new instance if everything's FUBAR, but having to drop everything because you cannot receive any new e-mails (such as a link to confirm doing something) would be rather disruptive in certain circumstances.