SMTP (AWS/SES) reports only a fraction of emails being sent


I’m on phpList version 3.6.15. I am using a cronjob to process the queue. My configuration options that differ from a base install include:

PHPMAILERSUBSCRIBEHOST: ‘’ (phpList 3.6.4 SMTP code: 550)

I also have credentials setup for Email SMTP.

I’m using Amazon’s SES to act as the SMTP server for my phpList install. I’ve made it to about 10K usable email addresses on my list.

Recently, I had a reputation scare in Amazon where phpList was not processing bounces (the email inbox was unreachable.) The host solved this issue. During that reputation scare I noticed in CloudWatch that Amazon only reported ~3000 emails being sent out of the 10,365 that are sent in phpList. These are emails that are not on any denylist, and I’ve confirmed that to be the case.

Curious, I checked phpList and it reported that all 10,365 emails were sent. I went to the System → Log of events page, and couldn’t see any errors. I thought maybe this was a fluke, but I sent another newsletter out a few weeks later, and saw the same thing in Amazon (and the same thing in phpList.)

The processqueue logs look about as they’ve always looked. It will say something like:

Event: Sending NNN to EMAIL
Event: It took 1.1941380000 seconds to send

When I searched the event log for that campaign number (NNN) it returned 10,549 events. It does not include the “It took x seconds to send” events. Admittedly I did not go through each event, but I went through about 10 pages and they all look the same. The numbers appear to match up to me for the number of sent emails.

I am having the host crawl through the php and smtp logs, but they haven’t found any errors at all yet.

I am now concerned that phpList is reporting that it’s sending the emails, but it’s not actually sending the emails. My stats really haven’t changed over time, so I am not sure if this has been a forever issue or not.

One thread on a similar topic suggested changing the MAILQUEUE_THROTTLE config. I set this to 1 before the last send, and the data in CloudWatch still appears the same.

Another thread suggested to change the MESSAGEQUEUE_PREPARE config to 0, but my install already had it set to 0 by default.

Are there any MySQL tables and queries I should search for to diagnose this?

I have VERBOSE set to 1. Is there an SMTP log I can review and grep for an error code? All test emails send and arrive in time. Is there a way to use PHPMAILER_SMTP_DEBUG and send the data to a specific file I can grep for an error?

Which error code would I be looking for?

Thank you for your time!


Just an update on this. I decided to split a new list up to see if there was some other kind of rate limiting going on. The list is about 1,000 emails larger now. In SES, I have a 50,000/day limit, and 14 emails/second.

I sent three sends, and PHPList says:

Send 1: 3631
Send 2: 4258
Send 3: 3852

In Amazon, I have:

Send 1: 3640
Send 2: 4268
Send 3: 3861

It appears that my hunch is correct, that some kind of rate limiting is going on. I am not sure if it’s on PHPList’s side, or if it’s on Amazon’s side. Most likely the latter, but that doesn’t make a whole lot of sense because there are no rejects in Amazon SES, and no errors in Cloudwatch. None in the past 2 months.

I wish I had more to offer, but for others in this situation, in lieu of any expert knowledge, my suggestion would be to break up your list into smaller chunks and just send multiple emails out over the course of a day or so.