#!/bin/sh MMHOME=/var/mailman SAHOME=/var/lib/spamassassin list=$1 shift HOME=$SAHOME/$list.prefs export HOME if [ ! -d $HOME ]; then echo "Prefs for list $list not found" exit 1 fi if $MMHOME/bin/list_lists -b | grep -q $list > /dev/null 2>&1; then : else echo "Mailing list $list not found" exit 1 fi tmpmbox=`mktemp ${TMPDIR:-/tmp}/mmlearn.mbox.XXXXXX` # create an mbox file of all the held messages PYTHONPATH=$MMHOME:$MMHOME/pythonlib python -c " import os import pickle import email from Mailman.mm_cfg import DATA_DIR mbox = open('$tmpmbox', 'w') files = [ file for file in os.listdir(DATA_DIR) if file.startswith('heldmsg-$list') ] for f in files: filename = os.path.join(DATA_DIR, f) if filename.endswith('.pck'): msg = pickle.load(open(filename, 'rb')).as_string(unixfrom=True) else: msg = open(filename, 'r').read() mbox.write(msg) if msg[-1] != '\n': mbox.write('\n') mbox.write('\n') mbox.close() " sa-learn --showdots --spam --mbox $tmpmbox rm -f $tmpmbox chown -R spamassassin.spamassassin $HOME