[Mailman-Users] Unsubscription Script, Try #3

Bob Puff@NLE bob at nleaudio.com
Tue Jan 16 03:09:04 CET 2001

Ok, think I figured out a safe way.  I used the <listname>-admin as the From: address in the mail to Mailman.  Also added a return message to the originating person confirming their unsubscription.  So far, this looks to be good!

Call it with a couple parameters in your aliases file.

Here is the script.  Put this in /home/mailman, or wherever else you would like it:

# Mailman auto unsubscription  by Bob Puff 01/15/01
# Pass two parameters to this script:
# /home/mailman/unsub <list name> <domain name>

# Call from your aliases file like:
# test-unsub:   /home/mailman/unsub test yourdomain.com
sp="xxxxx"  # *** Put your site password here ***
read fl ;
addr="`echo $fl | awk '{print $2}'`" ;
# Yeah, it's crude, but it gets the user's address most of the time

echo "From: $1-admin@$2" > /tmp/$addr
echo "To: $1-request@$2" >> /tmp/$addr
echo "Subject: unsubscribe $sp $addr" >> /tmp/$addr
echo "" >> /tmp/$addr
echo "unsubscribe $sp $addr" >> /tmp/$addr     
echo "" >> /tmp/$addr

/usr/lib/sendmail -f $1-admin@$2 $1-request@$2 < /tmp/$addr
rm /tmp/$addr  # send the unsub to mailman, and clean up

echo "From: $1-admin@$2" > /tmp/$addr
echo "To: $addr" >> /tmp/$addr
echo "Subject: Unsubscription Confirmation" >> /tmp/$addr
echo "" >> /tmp/$addr
echo "This message is to confirm your unsubscription request to" >> /tmp/$addr
echo "the $1 list.  You will receive no more messages from" >> /tmp/$addr
echo "this list.  Thank you." >> /tmp/$addr
echo "" >> /tmp/$addr

/usr/lib/sendmail -f $1-admin@$2 $addr < /tmp/$addr
rm /tmp/$addr  # send msg to the person, and clean up

More information about the Mailman-Users mailing list