Lots of tools and suites like Zimbra and Mdaemon that can self host mail just fine.
Outbound delivery can use a service as well.
Look for options and possibilities and they can be found. Look for reasons not to do something and those will be found too.
One example of not setting everyone from scratch..
IaaS/Paas: Install Proxmox from USB.. 10 minutes from boot to web interface to your own local linode/digital ocean. Redundancy, setup 2 and link them. Disaster recovery, put it off site. Backups, connect it to one of a few built in options.
Network/infrastructure: deploy docker images for VPN (algo), firewalls (pfsense), dns (pihole), proxy (traefik, etc). It can remain an appliance that can be configured to self update if needed.
Storage: make storage into an appliance that you set and forget with a nas.
Next spin up your services/packages. Things like turnkeylinux is a nice way to try out things.
There is a nice self hosting community on Reddit if you’re interested for folks who have setup homelabs.