Its easy enough to get it set up and "basically" working, but not. Basically, you're using in your favorite language's mail sending library to send an email out.
The next level is figuring out all the standards surrounding email that those third party systems know and implement for you. This will help deliverability, to a point.
Beyond that, once you hit enough volume, there's best practices should have always been doing but you learn from experience and need to abide by or else you're not getting anything through even though you do all the previously mentioned stuff.
If I were to develop an app with low amount of sent email, I would be okay with doing the above myself. But I'm also familiar with the process by now.
Beyond that, theres continuous monitoring of deliverability and reputation, tweaking your sending algorithms (you don't just send email as fast as you can generate them, right?), keeping up with how email providers are changing their rules over time, maintaining your relationship with people who work at major email providers, and more I probably never had to get into.
You can easily have a team of people dedicated to ensuring your email doesn't just end up in the spam folder, or being rejected outright.