3.53. Additional web administration tools
Much of Mailman can be administered through the command-line tools (see 4.09 Summary of the mailman bin commands), however the web interface also provides access to some information and functions of the tools.
By writing a script to call the web interface, actions can be submitted and information can be parsed.
Mailman can also be administered using PHP or any other scripting languages by using the appropriate URL and passing it to an fopen wrapper function (such as file_get_contents) or using a third party library such as CURL.
<?php $listsurl="http://example.com/mailman/admin"; $content=file_get_contents($listsurl); ?>
In this example, the list of lists should be returned as HTML and put into $content as a string. You can then parse the list to display or use how you desire.
Other available functions via the web interface:
List lists: http://example.com/mailman/admin List a member: http://example.com/mailman/admin/<listname>/members?findmember=<email-address>&setmemberopts_btn&adminpw=<adminpassword> Unsubscribe: http://example.com/mailman/admin/<listname>/members/remove?send_unsub_ack_to_this_batch=0&send_unsub_notifications_to_list_owner=0&unsubscribees=<email-address>&adminpw=<adminpassword> Subscribe: http://example.com/mailman/admin/<listname>/members/add?subscribe_or_invite=0&send_welcome_msg_to_this_batch=0¬ification_to_list_owner=0&subscribees=<email-address>&adminpw=<adminpassword> Set digest (you have to first subscribe them using URL above, then set digest): http://example.com/mailman/admin/<listname>/members?user=<email-address>&setmemberopts_btn=1&<email-address>_digest=1&<email-address>_nodupes=1&adminpw=<adminpassword>
To include real names in a subscribe, see How can I Mass Subscribe a list with real names. Also, if <email-address> in the Subscribe example above has spaces or other specials such as "John Q. Public" <firstname.lastname@example.org> you will need to urlencode() it.
In recent Mailman versions, <email-address> in the last example above must be encoded with '%40' instead of '@'. Also, if <email-address>_realname is not specified, the user's real name will be cleared and any of the <email-address>_[mod, hide, nomail, ack, notmetoo, nodupes, digest, plain] flags which are not explicitly set will be cleared.