I have just finished setting up Mailman at a local school, and would like to thank the developers for a very well designed and usable application.
The school is limited to a dialup connection to the internet, so even though the mailing list is accessible to people outside the school, they cannot access the web server used to administer the list. I imagine that other places exist where people might want to run Mailman on a server that has limited access (e.g. a company might run Mailman on an internal server that is firewalled from the Internet), so this may be of interest to more people than just us :-). I would like it to be possible for list subscribers (or users) to manage their account via email (I realise that there would be little appeal in doing this for admins).
There would appear to be a couple of things that users can do via the web interface that cannot be done via email, in particular requesting a password mailing. Is it at all likely that the email commands will be extended to accomodate more functionality by email?
Is it at all likely that the email commands will be extended to accomodate more functionality by email?
I'd say "yes", and then welcome any patches to implement this :)
A patch against current CVS to make the "password" mail command mail a user's password to her when no args are given follows:
RCS file: /export/public/cvsroot/mailman/Mailman/MailCommandHandler.py,v retrieving revision 1.51 diff -u -r1.51 MailCommandHandler.py --- MailCommandHandler.py 1999/06/13 07:07:22 1.51 +++ MailCommandHandler.py 1999/06/13 15:03:15 @@ -265,10 +265,22 @@ self.__NoMailCmdResponse = 0
def ProcessPasswordCmd(self, args, cmd, mail):
self.AddError("Usage: password <oldpw> <newpw>")
if len(args) not in [0,2]:
self.AddError("Usage: password [<oldpw> <newpw>]") return sender = mail.GetSender()
if len(args) == 0:
# Mail user's password to user
user = self.FindUser(sender)
if user and self.passwords.has_key(user):
self.AddToResponse("You are subscribed as %s,\n"
" with password: %s" %
self.AddError("Found no password for %s" %sender, trunc=0)
try: self.ConfirmUserPassword(sender, args) self.ChangeUserPassword(sender, args, args)
# Try to change password