sympa-community / sympa

Sympa, Mailing List Management Software
https://www.sympa.community/sympa
GNU General Public License v2.0
248 stars 98 forks source link

Messages are still delivered when all the users are in error #1412

Open pilou- opened 2 years ago

pilou- commented 2 years ago

Version

6.2.60~dfsg-4 (Debian bullseye)

Installation method

Debian bullseye

Expected behavior

Actual behavior

When all the users of a list are in error, two notifications are sent: one to the sender, one to listmaster. Both notifications state that the message hasn't been delivered but the message is actually delivered: https://github.com/sympa-community/sympa/blob/aad96a08ce9e17440e5550627a8f0a4e00187960/src/lib/Sympa/Spindle/ToList.pm#L215-L225

ikedas commented 2 years ago

Hi @pilou- ,

Either the messages sent to a list should not be delivered when all the users of the lists are in error

This is not true. Because, even if message delivery to all subscribers reported error (bouncing), Sympa (at least for a while) will not stop trying to send messages to the subscribers.

Logically, the subscriber who has been reported error (the bouncer) can not receive the message at that time. However, it is possible that the error will be recovered afterward. So, Sympa will continue to try sending any new posts to the subscribers, and if the bouncer doesn't report errors anymore for a whle (e.g. seven days or so), Sympa will reset the error for that subscriber.

You (the list owner) may reset errors manually. And you may configure the list so that the bouncers with no hope of recovery are automatically removed from the list (See also "Bounce management").

So,

or notifications (to the sender and to listmaster) stating that a message hasn't been delivered should not be sent when the message has actually been sent

Indeed, a description "Your message to list %1 could not be delivered." may not be strictly true: Some subscribers who have recovered error may receive the message for now. However, succeeding description "All the subscribers to this list have their address in error." is nearly true: All or most of subscribers may not receive the message sent by Sympa.

pilou- commented 2 years ago

Hello :) !

Either the messages sent to a list should not be delivered when all the users of the lists are in error

This is not true. Because, even if message delivery to all subscribers reported error (bouncing), Sympa (at least for a while) will not stop trying to send messages to the subscribers.

Yes: I wasn't describing a behavior but an expected one (from the sender point of view) due to the Your message to list %1 could not be delivered. message received by the sender.

Logically, the subscriber who has been reported error (the bouncer) can not receive the message at that time. However, it is possible that the error will be recovered afterward.

In the described use case, the sender isn't a member of the list. All the members of the list are in error since a few hours only.

So, Sympa will continue to try sending any new posts to the subscribers, and if the bouncer doesn't report errors anymore for a whle (e.g. seven days or so), Sympa will reset the error for that subscriber.

Yes, the bounce score is ignored if _the number of received bounces is lower than minimum_bouncing_count or the bouncing period is shorter than minimum_bouncing_period_ (doc)

You (the list owner) may reset errors manually. And you may configure the list so that the bouncers with no hope of recovery are automatically removed from the list (See also "Bounce management").

So,

or notifications (to the sender and to listmaster) stating that a message hasn't been delivered should not be sent when the message has actually been sent

Indeed, a description "Your message to list %1 could not be delivered." may not be strictly true: Some subscribers who have recovered error may receive the message for now. However, succeeding description "All the subscribers to this list have their address in error." is nearly true: All or most of subscribers may not receive the message sent by Sympa.

Should not the sender be notified only when the bounce score is really evaluated (in regard of minimum_bouncing_count and minimum_bouncing_period)?

Thank you for your time and patience!

ikedas commented 2 years ago

Should not the sender be notified only when the bounce score is really evaluated (in regard of minimum_bouncing_count and minimum_bouncing_period)?

I think your suggestion is very useful. These parameters should be taken into account when notifying "100% errors".