[Mailman-Developers] Mailman Preprocessor Available - seeking
Darwin at sanoy.com
Mon Dec 1 14:57:02 EST 2003
Below is the description of a preprocessor script I wrote for mailman. I
was looking to emulate the Topica.com features of "<list>-subscribe",
"<list>-unsubscribe" and "<list>-post-<password>" in an efficient and
I am seeking feedback on the script and I have two areas that are troubling
*) I still get a succesful completion AND an error message back from mailman
when sending to "<list>-unsubscribe" (yet I don't get one when sending to
"<list>-unsubscribe" which *should* process exactly the same way. I know I
coiuld re-write the entire message - but I am wondering if there is a way to
make unsubscribe work the same way as subscribe and post - by doing
replacements to the inbound message.
*) I am wondering if there is a way to alter all the messages sent out by
mailman to match my configuration. There are some in "Templates" - but
others seem hardcoded. Right now I am tied to Mailman 2.0.13 due to needing
to stay compliant with the RedHat 2.1AS distribution.
The script can be found at http://desktopengineer.com/mmpreproc
Thanks for any time anyone can take to send feedback,
# This script pre-processes mail commands to mailman to faciliate
announcement lists and easy subscribe and unsubscribe.
# It modifies the list behavior as follows:
# *) unsubscribes only made through the alias <list>-subscribe at domain.com
and automatically sets users password to their email
# *) unsubscribes only made through the alias
<list>-unsubscribe at domain.com and automatically unsubscribes with no
confirm, email=password is assumed
# *) posting to the list can only be done through a special alias that
includes a password component such as <list>-post-<password>@domain.com.
# The list can be configured for moderation and only allow a specific
list of emails to be automatically approved. Since it is recommended
# that you delete the <list>@domain.com alias, using this method
prevents the need to moderate messages that try to use the standard posting
# alias - even if you do not allow auto approval of posts to specific
# *) This script accomplishes its objectives by having the mail message
piped to it and then it pipes the message into the standard mailman wrapper
# processing. This is more efficient than re-mailing back to the same
system. In addition, since the program simply does regex substitutions to
# inbound message headers, the posting password alias can work easily
with complex messages that include mime sections because the entire message
# need to pass through mail again and therefore be disassembled,
reassembled and then emailed correctly.
# *) Many other modifications could be made for preprocessing mailman
commands and posts - the script design is modular and dynamic - it pulls
# mail aliases components (seperate by "-" character) and decides what
to do with the message based on these components.
# *) Tested with mailman 2.0.13 (Redhat 2.1AS Version)
# *) Ensure you have Mail:Mailer (mailtools) installed if you wish to have
error notification or debug emails sent, or rewrite the email section
# to suite your system.
# *) Copy mmprepoc.pl to <mailmanroot>/mail (e.g. "cp mmpreproc.pl
# *) Change ownership to the mailman user (e.g. "chown mailman
# *) Change security to be executable (e.g. "chmod 755 mmpreproc.pl")
# *) For sendmail create a link in the /etc/smrsh directory (e.g. "ln -s
# *) Set $mailmanpath - this should be the directory with all your mailman
subdirectories (including "bin") in it.
# *) Set $blockrequests - if set to "1" this script blocks all
<list>-request at domain.com messages except replys to
# subscription confirmations.
# *) Set $emaildiscards, $emailerrors, $emaildebug and $emailnotifyaddress
if you wish to use email notification.
# Configure Mailman (note your lists cannot have a "-" character in their
# *) add the list alias <listname>-subscribe:
# *) add the list alias <listname>-unsubscribe:
# Configure Mailman: If using the post-password alias feature
# *) add the list alias <listname>-post-<password>:
# *) remove the list alias <list> or send it to null so that you don't
have to moderate messages sent there.
# *) in mail man set posting to the list to be only allowed from members
of the list and setup any auto-approval email
# addresses. It won't matter that users can see your auto approved
email when receiving messages because they cannot
# tell that you used a special alias to send the message rather than
More information about the Mailman-Developers