This is a great example. I think some of the disconnect with other commenters is thinking that sending email is trivial. It isn't. Even at small scale, deliverability starts to become a problem, there is infrastructure management (for example, this why people use heroku rather than just AWS) and receiving and tracking email requires managing all sorts of email weirdness that are not addressed by using software libraires (this is analogous to html parsing - getting all the non-standard or ambiguous cases right is hard).