I use Mailcow and like it a lot.
I use a mail service (MXRoute) as an outbound SMTP relay though, since I don't want to have to deal with deliverability, especially to picky services like Microsoft Hotmail/Outlook. It's a trade off. Other relays like SMTP2Go and Amazon SES work well too.
So I'm self-hosting the mailboxes, but when I send mail through my server, it sends them via MXRoute.