Mailcow is a easy to set up Mailserver running in Docker.
Unfortunately, most ISPs block port 25. In addition to that, residential IP addresses are generally blacklisted, making it impossible to self-host a mailserver at home. Mailcow by itself requires at least 6GB of RAM, which makes hosting it on a VPS rather expensive.
The solution: Running Mailcow at home and tunneling it's traffic through a cheap VPS.
The final setup will look like this: