
Philip Bondi writes:
I've never used the REST api before. I don't think it's working, yet, for me.
It pretty clearly is running and basically working.
So I don't know how to dump my queues.
"Queues" in Mailman usually refers to email messages being processed. As the name suggests, they are processed as soon as possible and in order. You appear to be looking at the request pools, which aren't queues: they are processed at any time and in any order an administrator chooses to.
I don't think you need to be using mailmanclient for this problem. First you should recheck the "held posts" on that list. Setting a delivery option on the address does not release the held post, only future posts are affected. You must *also* accept that post explicitly to release it for delivery.
Second, you should check smtp.log. I believe it by default records the LMTP connection setup and close for incoming messages (at least it does on my own site), it records the number of recipients of the distribution, and certain other events (if a subscriber bounces the message).
If that is not the situation, what Mark suggessted is to look in the message queues, which are stored in the queue directories under /opt/mailman/mm/var/queue. Files being currently processed by the associated queue runner have the extension .bak. You can ignore those, they will disappear within a few seconds (unless the list has hundreds of subscribers). Files waiting to be processed have the extension .pck. You can examine their content with "mailman qfile path/to/queue/file.pck".
You're looking for files in queue/shunt or queue/bad (which indicates some problem that makes that message require operator intervention before they can be delivered) and files older than a few minutes in queue/out or queue/in (which Mailman believes it can deliver but for some reason are "stuck" in the queue).
In case none of that helps, some advice on mailmanclient usage:
Here's my first try:
(venv) mailman@shackleton12:~$ mailman info GNU Mailman 3.3.10 (Tom Sawyer) Python 3.11.2 (main, Nov 30 2024, 21:22:50) [GCC 12.2.0] config file: /etc/mailman3/mailman.cfg db url: postgresql://mailman:PASSWORDSNIPPED@localhost/mailman devmode: DISABLED REST root url: http://localhost:8001/3.1/ REST credentials: restadmin:restpass
This all looks normal, except you should change the REST credentials.
(venv) mailman@shackleton12:~$ python Python 3.11.2 (main, Nov 30 2024, 21:22:50) [GCC 12.2.0] on linux Type "help", "copyright", "credits" or "license" for more information.
from mailmanclient import Client client = Client('http://localhost:8001/3.1', 'restadmin', 'restpass')
You can do this, but I find 'mailman shell' more convenient most of the time. See
https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/docs/instal...
dump(client.system)
If you have omitted nothing you did, there is no "dump" function in that environment. (I don't think one exists at all.) You need to import such helpers. See
https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/rest/docs/r...
Many examples of usage are here:
https://docs.mailman3.org/projects/mailmanclient/en/latest/src/mailmanclient...
All of the information you present from the site or logs looks normal. So you should look at the more superficial data (on-disk queues, the held messages, etc) first, and worry about poking around with the internals (mailman shell, mailmanclient, REST API) later.
Steve