This module is useful in the following situation:

You run mailman and you want to allow users to create and delete list from mailman through a web interface in a secure manner.

Main Features

  • Drupal and Mailman can be installed on different machines
  • Drupal communicates with Mailman via XML RPC
  • Suppports SSL for the XML RPC calls
  • Support Digest (preferred) and Basic HTTP Authentication for XML RPC calls
  • Import Feature for existing mailing lists
  • Support for controlling multiple Mailman servers
  • Support for virtual domains
  • Support for direct link to the Mailman web interface
  • Support for limiting the number of lists a user group can create

There are two levels of access

(1) 'user': a mailing list administrator that can
create new mailman lists and delete his own lists

(2) 'admin': can delete any lists administered through this
module

The mailman commands are given via XML RPC. The modified
client library supports SSL over a non standard port.

It's the XML RPC server's responsibility to perform
the actual operations (e.g. via sudo).
Mailman doesn't have a XML RPC interface in the
stock vanilla distribution

If you want to use this with mailman you'll end up
having to write your own server and method handlers.

An example server implementation is included.

Requirements and Installation steps

  • Create a server script that handles the XML RPC calls. An XML RPC library for PHP is included. But feel free to use any other language as long as it has support for XML RPC. The server script must handle the following XML RPC calls:
    • system.get_date: return current date as string
    • mailman.create_list
      args:
      array('listname'=>string,'domain'=>string,'email'=>string,'passwd'=>string)
      returns
      array('result','stderr','stdout')
    • mailman.remove_list:
      args:
      array('listname'=>string,'archives'=>true/false)
      returns
      array('result','stderr','stdout')
    • mailman.find_member (optional): args: array('lists'=>array(list1,list2,..)
      args:
      array('lists'=>array(list1,list2,..))
      returns
      array('result','stderr','stdout')
  • Configure apache-ssl (or any other apache) on the Mailman server to use digest authentication for accessing the server script.
  • Configure the mailman module to access the server: in admin/settings/mailman enter the XML RPC URI for the machine that hosts Mailman and the server script (e.g. ssl://Digest:user:pass@mailman.domain.com:444/server.php)
  • Create a mailman group in admin/settings/mailman/groups: enter the userid of one (ore more) Drupal user to allow him/her to create/delete Mailman lists. (It's also possible to override the default XML RPC uri for accessing more than one Mailman from the same Drupal)

For more information and setup read the mailman.module file

Project Information

Downloads