View Issue Details

IDProjectCategoryView StatusLast Update
0018313phpList 3 applicationCampaign Send Processpublic09-05-17 21:01
Reporterr.gerrits Assigned To 
Status newResolutionopen 
OSLinuxOS Version2.6.37.6 
Product Version3.2.5 
Target Versionnext minor 
Summary0018313: error handling of Send Process is flawed
DescriptionphpList Send Process assumes that the smtp-server will always accept the message and then expects a bounce mail to be sent, if delivery fails.

Some smtp-servers (in my situation, the Postfix server of my hosting provider) behave different, and immediatelly do some checks.

In my situation, the domain of one email-address no longer exists -> Postfix rejects this mail with error "Recipient address rejected: Domain not found"

phpList ignores this rejection, assumes something went wrong and will indefinately keep retrying.

Proper logic would be inspect the error message.
If the error message indicates an issue with the email-address (like domain not found), then pass the email-address to the bounce-handling mechanism and don't retry this address during this campaign.
If the error message suggest a transient error (like connectivity issues) then it is oke to retry.

Steps To ReproduceConfigure phpList to use a Postfix smtp server (assumtpion is that all postfix servers behave the same).
Add a subscriber with an email-address that has a non-existing domain-name and add it to a list.
Send a campaign to that list

Additional Information is also mentioning the same issue.

And related, but perhaps something for a different ticket:
My configuration currently has this setting configured define('MAILQUEUE_THROTTLE', 30);
With this setting, phpList was retrying to resend that failed message "only" twice per minute.
Without this setting, my smtp account would probably temporary have become locked out by my provider, for hammering their server.

Wouldn't it make some sense to atleast wait some time before retrying failed messages?
TagsNo tags attached.


There are no notes attached to this issue.