[Mailman-Users] un-subscription problems

Jon Carnes jonc at nc.rr.com
Sun Sep 22 05:16:26 CEST 2002


On Sat, 2002-09-21 at 20:43, Trek*Spot Webmaster wrote:
> Hello,
> 
> I'm the one who started this thread on unsubscribing, and your idea sounds
> good.  How exactly can I go about setting this up?  (I'm completely new to
> MailMan.)
> 
> Curry O'Day
> Trek*Spot Webmaster
> http://www.trekspot.com
> 
> ----- Original Message -----
> From: "Jon Carnes" <jonc at nc.rr.com>
> To: "Anthony Carmody" <carmoda at interfaceergonomics.com>
> Cc: <mailman-users at python.org>
> Sent: Saturday, September 21, 2002 9:28 AM
> Subject: Re: [Mailman-Users] un-subscription problems
> 
>

There are a couple of ways of doing this. The easiest is to add the
email address to a file and then let a mailman script (activated via an
hourly cron job) unsubscribe the user.

You should be able to modify the scripts below to write a mail Script to
collect the emails into a file, and a mailman script to pull the email
addresses out of the list.

===
A client wanted it to happen immediately so I wrote this (the email
addresses have been changed to protect the innocent):

 - In the aliases file, add an entry for the unsubscribe email:
     volleyball-unsub:  "|/home/mailman/ext/v-unsub"

 - Create the directory /home/mailman/ext
     mkdir /home/mailman/ext
     chown mail /home/mailman/ext
     chmod 0700 /home/mailman/ext

 - In /home/mailman/ext create the script "v-unsub":

#!/home/mailman/ext/bash_mailman
# This script runs as user mailman, but is only executable by user mail
# script to unsubscribe user from volleyball list
#   Mail to volleyball-unsub at haht.com
#   Subject: unsubscribe username at domain.com
UNSUB=`grep -i "Subject: " - |head -1`
for i in $UNSUB
do
   /home/mailman/bin/remove_members volleyball $i
done
# End of script


 - Make the script executable:
     chmod a+x /home/mailman/ext/v-unsub

 - In the /etc/smrsh directory:
     ln -s /home/mailman/ext/v-unsub v-unsub

 - Copy and modify bash so that it runs as user mailman:
     cp /bin/bash /home/mailman/ext/bash_mailman
     chown mailman.mailman /home/mailman/ext/bash_mailman
     chmod 0555 /home/mailman/ext/bash_mailman
     chmod u+s,g+s /home/mailman/ext/bash_mailman

===

The directory /home/mailman/ext has rights such that only the mail user
can 
access the files within.  The copied version of "bash" now called 
"bash_mailman" has it's ownership changed to mailman and then has it's
UID 
and GID bits set.  Any script that runs using it as a shell will now run
as 
the user mailman with group mailman.

Wahoo!
 
Hope this helps - Jon Carnes





More information about the Mailman-Users mailing list