phpList / phplist3

Fully functional Open Source email marketing manager for creating, sending, integrating, and analysing email campaigns and newsletters.
https://www.phplist.org
GNU Affero General Public License v3.0
734 stars 268 forks source link

Also process bounced unidentified message #1022

Open lwcorp opened 5 months ago

lwcorp commented 5 months ago

After noticing my bounce count is roughly the same after there were supposed to be consecutive bounces, I've realized when bounces were signaled as bounced unidentified message - and in those cases it seems no processing takes place at all. In other words, a subscriber's mail can bounce indefinitely and no action will be taken.

The reason is function processMessages checks $GLOBALS['tables']['user_message_bounce'], but that table only lists identified bounces, so it's kind of a vicious circle.

The irony is the user is known, it's just the message that is unknown. So if the user is known and we know there was a bounce, it should definitely go against that user's consecutive bounces and unconfirm if needed. Otherwise it affects being considered as a spammer.

michield commented 5 months ago

You mean the transactional emails, as opposed to a campaign? Is there any reason why the bounce is not identified? Maybe it's better to fix that instead.

lwcorp commented 5 months ago

No, I mean standard campaigns. I don't know why so many bounces are like this, but it's out of my control as it comes from various ISPs. All I know is phpList does know the user should it choose to address it.

HartLarsson commented 1 month ago

You mean the transactional emails, as opposed to a campaign? Is there any reason why the bounce is not identified? Maybe it's better to fix that instead.

sometimes i see mailbox have autoresponders that send the answer not to the sending mail but to the bounce mail and there is no headers to identify who answer and cannot be identified.

I think a good upgrade is to delete the bounce if is not identified (option that user can select somewhere in the config.php)