A few apps email failures I've troubleshot over time had a minor occurrence of poor SMTP implementation.
The more common of the two was not queing messages and retrying make for failures. This happens when the recipient's mail server is either TarPitting [en.wikipedia.org ] or Greylisting [en.wikipedia.org ]. Both never accept the message on it's first submission.
The other minor failure cause was missing required fields in the message that the recipient's mail server wanted. Reply-to and Sent (both client created fields) were two that I saw. The funny thing was it was a one way paging service!