On 12/9/24 17:35, Hirayama, Pat wrote:
Greetings,
I'm finding something a bit odd with our listserv.
Please see https://wiki.list.org/DOC/Mailman%20is%20not%20Listserv
Some of the members of some of the lists are reporting that they aren't receiving messages sent to the list. When I review the member options for the person in question, I see that Delivery Status shows nothing selected (i.e. neither radio button is selected for Enabled or Disabled).
If you look in the MTA logs is mail being sent to them.
As far as the Delivery Status showing nothing, that means the member's delivery_status is None. The ultimate delivery status is determined by checking first the member's delivery_status, then the address's delivery_status, then the user's delivery_status and finally Mailman's global preferences. The first non-None value is what's used. See https://gitlab.com/mailman/mailman/-/blob/master/src/mailman/model/member.py...
Also see the various tabs at https://www.example.com/mailman3/accounts/subscriptions/
If I select Enabled and Save, then delivery starts working for that user.
This should only happen if the users address or user based preference or the global preference is Disabled.
There are other members of the list that have neither Enabled or Disabled selected, but they are working. Which also seems to mean that when I run:
mailman members --nomail any listname@listserv
Nothing is returned.
Because all members ultimately have delivery enabled.
If anyone has any ideas about why this might be the case, or how I might proactively identify other members who aren't receiving mail, that would be appreciated. Alternately, any thoughts on how I might force all members to Delivery Status Enabled, that would also be great.
It shouldn't be necessary to do that. For one of these members, e.g. user@example.com, that isn't getting mail, do this in mailman shell
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
>>> from mailman.core.constants import system_preferences
>>> mbr = m.members.get_member('user@example.com')
>>> print(mbr.delivery_status)
(this will print the ultimate delivery_status, for the components do)
>>> print(mbr.preferences.delivery_status)
(output)
>>> print(mbr.address.preferences.delivery_status)
(output)
>>> print(mbr.address.user.preferences.delivery_status)
(output)
>>> print(system_preferences.delivery_status)
(output)
>>>
The first of the (output) lines which is not None should be the same as the output from print(mbr.delivery_status).
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan