There are guides online. But before I consider making my own or contributing it into home servers like MyNode or Start9, I want to check my suspicions...
I suspect that we don't do this due to a series of policies that are designed to detect and block spam primarily, that actually have served to centralise SMTP.
It means that we can create our own emails, but the chances of our emails being received and the chances that public internet services will support sending to our emails is not guaranteed.
Ever seen an email validation box error because your email wasn't @gmail.com? I am sure I have (at airport wifi hotspots).