Merge "docs: Switch a mailing list to default moderation"
This commit is contained in:
commit
93b595f5b3
@ -53,6 +53,61 @@ This may only be performed with root access to the list server.
|
|||||||
Use context help for the CLI's many subcommands, or see the Mailman v3
|
Use context help for the CLI's many subcommands, or see the Mailman v3
|
||||||
documentation for more details.
|
documentation for more details.
|
||||||
|
|
||||||
|
Example: Switch a mailing list to default moderation
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
For popular lists which allow subscribers to post freely and only
|
||||||
|
moderate messages from non-subscribers, it's not uncommon to see
|
||||||
|
spammers bypass this rule by subscribing first (or posting spam through
|
||||||
|
Hyperkitty, as it auto-subscribes the poster). The recommended
|
||||||
|
mitigation is to set the list's default action to hold for moderation,
|
||||||
|
and then have a moderator switch any legitimate new subscriber's action
|
||||||
|
to default processing after approving their post. For subscribers
|
||||||
|
imported from Mailman 2.1, those typically already have default
|
||||||
|
processing set, but anyone subscribing through Mailman 3 will use the
|
||||||
|
list default (i.e. unset for their account) so we need to bulk update
|
||||||
|
all of those to default processing or else they're going to be treated
|
||||||
|
like new subscribers.
|
||||||
|
|
||||||
|
Here's how to do that from an SSH session on the mailing list server
|
||||||
|
(make sure to pass the actual list name in the ``-l`` option instead of
|
||||||
|
``sample-list@lists.example.org``):
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ sudo docker-compose -f /etc/mailman-compose/docker-compose.yaml exec -u mailman mailman-core mailman shell -l sample-list@lists.example.org -i
|
||||||
|
|
||||||
|
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 sample-list@lists.example.org mailing list
|
||||||
|
>>> from mailman.interfaces.action import Action
|
||||||
|
>>> for member in m.members.members:
|
||||||
|
... if not member.moderation_action:
|
||||||
|
... member.moderation_action = Action.defer
|
||||||
|
...
|
||||||
|
>>> commit()
|
||||||
|
>>> exit()
|
||||||
|
|
||||||
|
Note that we avoid altering ``moderation_action`` if it's already set,
|
||||||
|
since previously identified spammers may have theirs set to something
|
||||||
|
like ``Action.discard`` and we don't wish to reenable them. In this case
|
||||||
|
``Action.defer`` is the explicit default processing path, which means
|
||||||
|
continue to check the message against other rules like max recipients,
|
||||||
|
message length, administrivia filtering, and so forth. While there is an
|
||||||
|
``Action.accept`` it should be avoided, since it directly bypasses these
|
||||||
|
valuable default processing rules.
|
||||||
|
|
||||||
|
Once this action has been performed, switch the list's *Default action
|
||||||
|
to take when a member posts to the list* from *Default processing* to
|
||||||
|
*Hold for moderation* in Postorius. Any existing subscribers will have
|
||||||
|
the same experience as before, but anyone who subscribes to the list
|
||||||
|
from this point forward will have their posts held for moderation until
|
||||||
|
a moderator changes the *Moderation* value to *Default processing* under
|
||||||
|
the *Administration options* at the end of their subscriber page in
|
||||||
|
Postorius.
|
||||||
|
|
||||||
Django Admin Interface
|
Django Admin Interface
|
||||||
======================
|
======================
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user