Phil wrote: > >I'm trying to kill a pending subscription to a mailing list via the command >line because the domain owner forgot to register the main domain of our site >and we can't approve/deny membership via the web admin interface. > >I've tried to remove the e-mail address pending approval via the >remove_members command and it seem to only react to active and approved >members of a mailing list.
That's correct. remove_members only removes members. A pending subscription is not (yet) a member. >Is there a way to approve / deny a pending user request via shell? Do you mean a subscription request that is waiting moderator approval because subscribe_policy is 'Require approval' or 'Confirm and approve' or one that is waiting user confirmation because subscribe_policy is 'Confirm' or 'Confirm and approve'? It seems you mean the former. Deleting a subscription waiting approval is a multi step process with existing tools. First run /path/to/mailman/bin/dumpdb /path/to/mailman/lists/LISTNAME/pending.pck This will report something like [----- start pickle file -----] <----- start object 1 -----> { 104: ( 2, ( 1318366634.8118629, 'u...@example.com', 'User Name', 'tuufwuge', False, 'en')), 'version': (0, 1)} [----- end pickle file -----] There may be more entries than above, but those other than 'version': (0, 1) are all pending requests of some kind. Each will have a numeric key, 104 in the above followed by a 2-tuple consisting of a number indicating the request type (1 for a held message, 2 for a held subscription or 3 for a held unsubscription) and a tuple of information the format of which depends on the type. You are interested in type 2 as above and the information tuple is (time stamp, e-mail address, real name, password, digest flag, language). Find the key(s) of the one(s) you want to discard, in the example above, 104. Then run /path/to/mailman/bin/withlist -l LISTNAME which will respond Loading list LISTNAME (locked) The variable `m' is the LISTNAME MailList instance >>> at the >>> prompts, type >>> from Mailman.mm_cfg import DISCARD >>> m.HandleRequest(104, DISCARD) (Use the key from your request instead of 104 - this should not print any error. You can repeat the above multiple times with other keys if you have more that one request to discard.) >>> m.Save() (This is important to save the state of the list.) >>> <- at this prompt type control-D to exit which should respond Unlocking (but not saving) list: LISTNAME Finalizing The discards will be logged in Mailman's vette log. The above method can be used to discard a held message, but Mailman's bin/discard is simpler. -- Mark Sapiro <m...@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan ------------------------------------------------------ Mailman-Users mailing list Mailman-Users@python.org http://mail.python.org/mailman/listinfo/mailman-users Mailman FAQ: http://wiki.list.org/x/AgA3 Security Policy: http://wiki.list.org/x/QIA9 Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/ Unsubscribe: http://mail.python.org/mailman/options/mailman-users/archive%40jab.org