We currently use an external library for SES.
This is one ~750 line file which doesn't do anything very interesting, and is awful at handling errors. In particular, the "you have not verified your From address" error is routine from SES, but not exposed to the user since the class throws a generic exception when the HTTP response is not HTTP 2XX.
It throws this:
[2019-01-14 07:55:37] EXCEPTION: (SimpleEmailServiceException) Unexpected HTTP status while making request to Amazon SES: expected 200, got 400.
...but the body is far more clear:
<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/"> <Error> <Type>Sender</Type> <Code>MessageRejected</Code> <Message>Email address is not verified. The following identities failed the check in region US-EAST-1: noreply@phacility.com, Phabricator <noreply@phacility.com></Message> </Error> <RequestId>d5f1d933-1814-11e9-b4a5-234246d388a5</RequestId> </ErrorResponse>