Spam protected email address for mailman archive

As a voyage-linux list administrator, I have recently received a request from a list member for removing his email address from the archive. I have reviewed the archive immediately and the email address is shown as "xxx at yyy.com", which makes intelligent spam-bots easily to find out the email address.

I have prepared the a script called "replace_spam.sh" to replace "xxx at yyy.com" with "(spam-protected)" for all archived messages.

#!/bin/sh
for FILE in 20[0-9][0-9]-*/0*.html
do
    echo $FILE
    #grep "TITLE=.*\>.* at .*$" $FILE
    sed -e "s/TITLE=\(.*\)>.* at .*$/TITLE\1>\(spam-protected\)/" -i $FILE
done

Put the script to the archive root and run it:

# cd /usr/local/mailman/archives/private/voyage-linux
# replace_spam.sh

Next, we need to change the achiver program such that it will not generated "xxx at yyy.com" as well. In /usr/local/mailman/Mailman/Archiver/HyperArch.py, change:

-                self.email = re.sub('@', _(' at '), self.email)
+                self.email = "(spam-protected)"

-                author = re.sub('@', _(' at '), self.author)
+                author = "(spam-protected)"

-            author = re.sub('@', _(' at '), author)
+            author = "(spam-protected)"

That's it. When new mail comes from the list member, the archiver will now mask xxx at yyy.com email address as "(spam-protected)".

2010-06-08 Update: Two of the above changes in incorrect. Now fixed. I also have found a way to regenerate all the archive by using this command:

# cd /usr/local/mailman
# bin/arch voyage-linux archives/private/voyage-linux.mbox/voyage-linux.mbox