Mail-in-a-Box [1] is very well-done, with a clean and modern mail server configuration. However it is not very customisable and requires a dedicated vm.
A VM/VPS running Ubuntu with one GB of RAM to be precise. Had to recreate a droplet when testing it because I only provisioned 512 MB of RAM.
So far, it has done its job quite nicely. Just make sure you don't plan on installing it next to a webserver. Its installer hijacks port 80/443 with its own nginx webserver.
Can I add "mailing list with a decent UI" to the tick list? Something like discourse's UI but with proper mailing list functionality, like Mailman. I know discourse has fairly theoretical mailing list mode but it's atrociously bad...
So far, it has done its job quite nicely. Just make sure you don't plan on installing it next to a webserver. Its installer hijacks port 80/443 with its own nginx webserver.