Here's a proper fix.
It is two steps (you can safely ignore the explanations if you want) and does not involve editing any non-config Expression Engine files, so you don't break your upgrade path.
It has been tested it on two Expression Engine installs (each v2.5.3 - Build Date: 20120911) and it's working perfectly.
STEP 1 of 2: Manually edit your {INSTALLDIR}/expressionengine/config/config.php file and add the following three lines at the end:
/* These email configuration variables are required for Amazon SES */
$config['email_smtp_crypto'] = 'tls'; // TLS protocol
$config['email_newline'] = "\r\n"; // SES hangs with just \n
Explanation: The first line sets the default email cryptography to TLS (which SES requires). The second line changes the email newline character from the Expression Engine default of "\n" to the RFC 822 compliant "\r\n" (which SES also requires).
STEP 2 of 2: Via your EE Admin go to "Admin -> Email Configuration" and set the following:
- Email Protocol: SMTP
- SMTP Server Address: tls://YOUR-SES-SMTP-SERVER:YOUR-SES-SMTP-PORT (the incredibly important part being the tls:// in front of the address)
- SMTP Username: your SES SMTP username
- SMTP Password: your SES SMTP password
Explanation: Once you have an SES Verified Sender Email Address and You have been granted production access to Amazon SES (both of which need to be done through Amazon's SES Management Console), you can create an AWS account with SMTP credentials via the SES Management Console. In doing this, Amazon SES will give you your own credentials.
For example it should look like this (with wacky usernames and passwords):
- EXAMPLE SMTP Server Address: tls://email-smtp.us-east-1.amazonaws.com:465
- EXAMPLE SMTP Username: QSKHFTQMSQAKIAIJ6GFY
- EXAMPLE SMTP Password: PeNqC2be3IAbNyhHddTbujwekIKoQE2dAhwr3FVzObjH
To test this via your EE Admin go to "Tools -> Communicate" and send an email.