A simple API that allows to add members to and remove members from a Mailman 3 mailing list. Written in Python (wsgi).
The API supports the following endpoints:
- /add: Add email addresses
- /remove: Remove email addresses
- /clear: Remove all email addresses
- /replace: Remove and add (in this order) email addresses
- /replace_all: Remove all email addresses and add new ones
The full documentation of the API can be found in api_documentation.txt.
To set up a configuration, you can just copy/rename the file config.json.sample to config.json and set up some lists in there.
If you changed the configuration of you Mailman installation, you might need to change the parameters resturl, restadmin and restpass.
In order to start a testserver serving the API, just run
python3 testserver.py
In order to make the API available via http(s)://my.domain.tld/public/path/ using Apache, you can write into the site configuration of my.domain.tld
<VirtualHost>
… # your vhost configuration
WSGIScriptAlias /public/path /path/to/dir/mailman_membershipmanager.py
WSGIPythonPath /path/to/dir
<Directory /path/to/dir/>
<Files mailman_membershipmanager.py>
Require all granted
</Files>
</Directory>
</VirtualHost>