mailman: Reinject all pending mails from command line.

Mailman doesn’t have a command to re-inject all pending mails for the command line. Because in Debian Lenny the web-part is broken (wants to be recompiled because of wrong Apache group) I needed to re-inject a lot of mails which were pending.

Warnung

Use this only if you have a backup. This script is new and not tested on a wide basis. This means it can destroy all your data (including mails)! Use it on your own risk._

Lets assume you already discarded spam and other non-allowed mails via the discard command and what is leftover are mails which are now accepted by mailman, because you added the sender to the allow-list.

First you will need a handy script from Marius Gedminas: mmextract.py.

Put this script in /usr/lib/mailman/bin/mmextract.py in case you need this more than once. Next, save the following script also to /usr/lib/mailman/bin: reinject_and_discard.sh.

reinject_and_discard.sh

#!/bin/bash

for i in `ls heldmsg-codetracker-*`; do
    /usr/lib/mailman/bin/inject -l codetracker <(/usr/lib/mailman/bin/mmextract.py $i)
    /usr/lib/mailman/bin/discard $i
done`</blockquote>

This script will discard the mail after it has been injected.