The Exim that comes per default in Ubuntu server has a default configuration that works as an SMTP server for a web application - no tweaks needed.
As I said: Your SMTP server needs two things:
1) You need an IP address in good standing. If you don't have that (if you are on EC2), you might need to sign up for an SMTP service (or sendgrid, but my concerns of using a nonstandard JSON API over the SMTP standard still stand).
2) If you have an IP address in good standing, you need a valid PTR record. You probably can't do that for yourself (unless you have an octet on your own or your provider goes really great lenghts), but all providers I have dealt with set this up for you no questions asked and without charging extra.
Then, getting the mail through through spam filters closer to the users is another problem, but Sendgrid wouldn't help you there either as this is largely dependent on the content of the email (and maybe a header or two like Message-ID).
1) http://www.pilif.ch/mail.txt is documenting the configuration. It's based on a newsgroup posting in 2001 - and it's in German.
Later on, Oliver Siegmar took my configuration and built http://www.xams.org/pages/home/home.php
This configuration plus the PTR record have lead to a configuration that is sending out 10000s of messages per day and we never had a blacklisting or spam filtering incident.
You only need the JSON API header if you want to use their "apps". If all you want is to send simple emails you can just use their SMTP server as a real SMTP server.
I used to configure my own mail server for scribophile.com. It took weeks to get it in a state I felt was acceptable, and even then it was through copy and paste without me truly understanding what was going on. When I had to move servers I said fuck it and went with Sendgrid, and I'm so glad I did! Instead of messing with DNS and domain keys and bounces and spam reports and user deliverability preferences I just dump a message to their smtp server and forget about it.