Spontaneous SMTP Error using Amazon SES

So, we were sending out our newsletter on Tuesday, which has about 21k recipients. I come back to the office, and it looks like only about 12k of them have sent. Odd. It should only take a few hours for them all to deliver, per our Amazon SES limits and my current phplist batch settings. I looked at the logs, and found the point at which it failed, and the log (via my database) has the following messages:

2015-10-14 00:17:40 -- processqueue -- Sending 235 to s*****n@hotmail.com
2015-10-14 00:17:40 -- processqueue -- Using cached message
2015-10-14 00:17:40 -- processqueue -- Sending message 235 with subject Apogee Rocketry Workshop Videos #184 & #185 to s*****n@hotmail.com
2015-10-14 00:18:25 -- processqueue -- Error sending email to s*****n@hotmail.com The following From address failed: ezine@apogeerockets.com : Called Mail() without being connected
2015-10-14 00:18:25 -- processqueue -- It took 45.1360340000 seconds to send
2015-10-14 00:18:25 -- processqueue -- Failed sending to s*****n@hotmail.com
2015-10-14 00:18:25 -- processqueue -- Failed sending message 235 to s*****n@hotmail.com

… and so on through my remaining 9k recipients.

We use Amazon SES. I cannot figure why it would SPONTANEOUSLY change. I was using 3.0.6. Today I upgraded to 3.2.1 hoping it would fix it, and after copying my AWS settings back over to the new config file (and actually also trying the old config file), I am still unable to send, but the error has changed.

Now, I am getting the following:

2015-10-15 13:47:34 -- processqueue -- Sending 235 to s*****n@gmail.com
2015-10-15 13:48:20 -- processqueue -- Error sending email to s*****n@gmail.com SMTP connect() failed.
2015-10-15 13:48:20 -- processqueue -- It took 45.2340400000 seconds to send
2015-10-15 13:48:20 -- processqueue -- Failed sending to s*****n@gmail.com
2015-10-15 13:48:20 -- processqueue -- Failed sending message 235 to s*****n@gmail.com

3.0.6 AWS SES Settings:
define(“PHPMAILERHOST”,‘email-smtp.us-west-2.amazonaws.com’);
$phpmailer_smtpuser = ‘***’;
$phpmailer_smtppassword = ‘***’;
define(‘PHPMAILERPORT’,465);
define(“PHPMAILER_SECURE”,‘ssl’);
define(‘SMTP_TIMEOUT’,45);
define(‘PHPMAILER’,0);
define(‘AWS_ACCESSKEYID’,’***’);
define(‘AWS_SECRETKEY’,’***’);
define(‘AWS_POSTURL’,‘https://email-smtp.us-west-2.amazonaws.com/

I’ve been futzing with the configs on 3.2.1, but started off with those, added USE_AMAZONSES, removed AWS_ ,changed ports, changed secure, etc etc etc. I got nada. Emails send if I remove all of the phpmailer & smtp stuff, but I need the SMTP to work via Amazon.

Halp.

Amazon SES can be accessed via smtp or via an api.
Your 3.06 settings seem like they are for both ways of accessing Amazon.

The error you are getting is that the system is trying to send vial smtp (that’s my impression), but it’s not able to login to Amazon…

Called Mail() without being connected

was the part of the log that indicates that.

I’d probably go through this process:

  1. look over your amazon ses credentials (when logged into amazon)
  2. pick either the smtp, or the api
  3. put the appropriate settings in the config.php file…

Ok. Another hour+ of futzing with settings, testing, failing, repeating, starting the config file from scratch, deleting all my AWS keys, redoing them, eating a snack… I got it to work via the API instead of SMTP.

When I posted first, at the time I had only SMTP settings in my 3.2.1 setup. The API ones were commented out. I hadn’t actually mentioned that.

Current SES settings are as such:
/* Amazon SES Setup */
define(‘PHPMAILER’,0);
define(“PHPMAILERHOST”,’’);
define(‘USE_AMAZONSES’,1);
define(‘AWS_ACCESSKEYID’,‘XXXXXXXX’);
define(‘AWS_SECRETKEY’,‘XXXXXXXX’);
define(‘AWS_POSTURL’,‘https://email.us-west-2.amazonaws.com/

We’ll see if this sticks, or if things spontaneously stop during a batch of 15k emails in a few months down the road…

Hi Erin,

Looks like you got it all figured out.
Thanks for posting your followup of what you did.

You might want to do that last 9k emails that didn’t go through in another batch…

Dan