Running the mail server is simple enough, but then you need to set up storage. Emails are sensitive and often can't afford to lose. Then you need to set up backs, monitor and regularly test DR scenarios to see if your failovers, recovery plans are operational. Of course you need to maintain your data centers as well if you don't want subscriptions.
Then think of login. Employees don't want to log in to 15 different software. So they are going to ask for SSO. You are going to have to deploy and maintain something like active directory. Sometimes they need to be maintained across networks between different offices that are far from each other. After all this, you will still have to buy support packages from principle vendors for times when things go wrong (and they go wrong all the time when you host your own stuff). Shit escalates mate.