PHPList keeps trying to send to a failed address

I have PHPList (3.2.4) installed on a dedicated server. I did not set particular configuration or limits at the moment. I’m using a local postfix as SMTP.

I sent a campaign and 1 email address gets the following error (in maillog):

Recipient address rejected: Domain not found

The problem is that phplist keeps trying to send the message to that address, and it doesn’t stop the campaing. This is not a bounce, but a failed email, so the campaign never closes, and in the admin interface I keep getting a message:

You have 1 message(s) waiting to be sent

so that I have to stop the campaign manually.

Could this depend from my Postfix configuration? (e.g. reject instead of bounce)?

I read the documentation, but didn’t find what I’m looking for.
How can I make phplist aware of this error and mark this address as invalid after N retries?

@stclaus I don’t think that it is possible to stop phplist re-trying a failed attempt to send. When an attempt to send to an email address fails then phplist will mark that as unconfirmed if the email address looks to be invalid. Otherwise that email address will be retried at some point.

Presumably your problem address looks to be a valid address. I don’t know much about Postfix but making it generate a bounce instead of rejecting might be preferable. Then phplist’s attempt to send would appear to be successful and the bad domain would be picked-up by the bounce processing.

You should be able to create a bounce processing rule that deletes any user with a bounce that has: “Recipient address rejected: Domain not found”.

@NYChris, thanks, but the problem is exactly that Postfix doesn’t bounce the message, but rejects it. The only notification is at SMTP level, which replies with the message “Recipient address rejected: Domain not found”, but no bounce message is produced. Thus, PHPlist is unable to understand that the address should be marked as invalid, and keeps trying to send it indefinitely, and the campaign never ends.

@duncanc thanks, I’ll try to find a way to make Postfix generate a bounce message instead of a simple reject.

You should be able to track down the offending address through the hosting server.
IF it’s aLinux server running CPanel…
IF you have root access to WHM…
You should analyze the “Mail Delivery Reports” and look for the delivery error.
If you don’t have access, you could try calling support and asking them to look… You never know. They might do it.

This solution may be moot, but there’s a VERBOSE setting that can be added in config.php, copy it from ~config/config_extended.php. This allows you to get a log emailed of the email campaign processing, including all failed email addresses. Some further tweaking of the PHP code that produces this log enables you to produce a list of all the failing email addresses that you could then enter manually in the “suppressionlist” feature of PHPList.

For PHPList version 3.2.3, make the following edits in ~admin/action/processqueue.php.

Comment out the following lines:
processQueueOutput($GLOBALS[‘I18N’]->get(‘Sending’).’ ‘.$messageid.’ ‘.$GLOBALS[‘I18N’]->get(‘to’).’ ‘.$useremail);
processQueueOutput($GLOBALS[‘I18N’]->get(‘It took’).’ ‘.$emailSentTimer->elapsed(1).’ '.$GLOBALS[‘I18N’]->get(‘seconds to send’));

And change:
$report .= “\n$infostring $message”;
$report .= “\n$message”;

Hi all,

I’ve got the same issue but since the post the processqueue doesn’t contain the above code.
Anyone with a suggestion/update how to fix this?

I’ve got hundreds of emails with same error in a loop.

@stclaus did you ever found a solution on this?


It’s a 5 years old thread, sorry @mrdebian, I definitely cannot remember this.

But if at that time I fixed it, most likely it has been something manual, like an update query in the PHPlist database.

Suspend the campaign to stop phplist sending any more. Then review the failing email addresses and either mark them as blacklisted or delete them.