On 2/7/26 12:33, John Price via Mailman-users wrote:
Is there a way to expire and delete (in mailman3 or via cron)
non-members?

I've been running mailman3 for a couple of weeks now on a few mailing
lists, and on my big list specifically I'm seeing lots of spam to the
[email protected] email alias, which creates these non-members, but they
never confirm their subscription, so they remain in non-member limbo.


They don't confirm their subscription because the don't have a subscription request. They have been added to the list as nonmembers because Mailman ensures there is an address record for all the sender addresses in a post regardless of the disposition of the post. See https://gitlab.com/mailman/mailman/-/blob/master/src/mailman/runners/incoming.py?ref_type=heads#L69-L73

Mailman 3 has a different model for dealing with nonmembers than does Mailman 2.1. There are still *_these_nonmembers list attributes, but these are intended to only be used for regexps. For individual addresses, it is intended that the address be a nonmember and the disposition of posts for that nonmember be handled by setting its moderation_action.

Of course, this results in spam sender addresses becoming nonmembers which may not be desired, but can be useful.

For example, on some lists I manage, nonmember posts are held for moderation. In moderating the post, if I determine it's spam, I discard it and in the same operation set the senders moderation action to discard so subsequent posts from that address are automatically discarded.

However, if you want to remove nonmembers from a list, there is currently no mailman subcommand to do that. The `mailman delmembers` command only does members, not nonmembers. You can do it with `mailman shell` (withlist) something like
```
$ mailman shell -l [email protected]
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 [email protected] mailing list
>>> for nonmember in m.nonmembers.members:
...     nonmember.unsubscribe()
...
>>> commit()
```

--
Mark Sapiro <[email protected]>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

_______________________________________________
Mailman-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
Archived at: 
https://lists.mailman3.org/archives/list/[email protected]/message/HTHSH6GBPQQFKOLEA54NB6TMZKIFYRM7/

This message sent to [email protected]

Reply via email to