Sietima, a mailing list manager construction toolkit

Other languages

What is it

Sietima is a mailing list manager construction toolkit, written in Perl 5. It's an exercise in modularity, a showcase of the latest features of Perl 5, and an actually usable mailing list manager.

History

Once upon a time, there was a mailing list manager called Siesta, written by Richard Clamp, Greg McCarrol and Simon Winstow. You can still look at the Subversion repository, development mailing list archives, the slides of the talk Richard gave at YAPC::EU 2003, and the full history as written by Simon.

It is completely plugin-driven, and has per-user configuration. I still run a few lists on Siesta.

Fast forward 13 years: Perl and CPAN have come a long way. Can we write a better list manager now? How hard can it be? That's why I started writing Sietima.

Construction toolkit?

Sietima provides a bunch of modules you can plug together to make your ideal mlm. Writing new plugins to add features should be as easy as possible. It is currently not a "just works" application, although the repository includes an example application that works.

Is it production-ready?

Yes! I'm using Sietima to run three mailing lists on this domain. Since I use qmail, I have the following configuration:

  • /var/qmail/users/assign contains lines like:

    +the-list:mailinglists:1016:1004:/var/qmail/mailinglists/:-:the-list:
    

    so messages sent to the-list@thenautilus.net (and all addresses of the form the-list-*@thenautilus.net) are routed to the mailinglists user

  • /var/qmail/mailinglists/.qmail-the-list is:

    |/usr/local/sietima/bin/sietima-the-list send
    

    so messages sent to the list go through the list-specific program

  • /var/qmail/mailinglists/.qmail-the-list-bounce is:

    &dakkar@thenautilus.net
    

    so bounces go to me (I haven't written VERP or bounce handler plugins)

  • /usr/local/sietima/bin/sietima-the-list looks very much like the example application

Contributing

Check out the source code, push your branch somewhere, then email me about it. Or ask me to give you write access to the repository.

DatesCreated: 2016-08-29 12:20:04 Last modification: 2017-01-29 14:25:36