On 2026-03-09 05:03, Mark Sapiro wrote:
It's much easier to use mailman shell as in
$ mailman shell -l list@example.com Welcome to the GNU Mailman shell Use commit() to commit changes. Use abort() to discard changes since the last commit. Exit with ctrl+D does an implicit commit() but exit() does not. The variable 'm' is the list@example.com mailing list >>> mbr = m.members.get_member('user@example.com') >>> mbr.bounce_score = 0 >>> commit()But what is the point of doing this? If the member is bouncing, the score will continue to increment, and if not the bounces will become stale and a future bounce will set the score to 1.
================================================
From time to time Microsoft will spit the dummy and start blocking mail from the lists.
This will last a day or two, but in the meantime bounce counts get cranked up which can send some lists over the edge and start disabling/removing subscribers.
In a bash script I can query the the database like so:
UPDATE MEMBER SET bounce_score = 3 FROM address WHERE address.id = member.address_id AND email LIKE'%hotmail.com' AND member.bounce_score >= 4 AND member.list_id = '<LISTID>'
The idea is that the script can be croned hourly for a couple of days on multiple lists to wind down the bounce_counts (preventing disable/remove) while the Microsoft issue gets resolved.
You mentioned reset_bounce.py, but that doesn't reset scores. It sets delivery enabled for users whose delivery is disabled by bounce, ...
Ahh, I see. Thank you for setting me straight on that.