[Mailman-Users] Mailman subscription/unsubscription reports

Mark Sapiro mark at msapiro.net
Sat Dec 8 19:47:32 EST 2018

On 12/7/18 2:12 AM, Odhiambo Washington wrote:
> On Fri, 7 Dec 2018 at 07:27, Mark Sapiro <mark at msapiro.net> wrote:
>> On 12/3/18 4:55 AM, Odhiambo Washington wrote:
>>> Hi All,
>>> I am running a list that has members joining and leaving.
>>> I'd like to get an inside of these changes:
>>> 1. how many members joined last month, this month..
>>> 2. How many members left last month, this month, this year.
>> I had some time to play with this so check out
>> <https://www.msapiro.net/scripts/subscribe_log> (mirrored at
>> <https://fog.ccsf.edu/~msapiro/scripts/subscribe_log>)
>> If this is close to useful for you, I'm willing to tweak it if you want
>> changes.
> It is definitely very very useful. Thank you very much for putting this
> together.
>> As it is, you can feed it a mailman subscribe log covering some period
>> and it will report the most recent join/leave event by list and user for
>> the whole log or, if specified, a most recent number of days.
>> Run it under Python3 (it will work with Python 2) with the --help option
>> for more info.
> I have tested it and notice that I need a few changesmods:
> 1. Give it the -l option to specify a listname (yes, my server has several
> lists)
> 2. The current -l should probably be changed to -f for specifying the
> subscribe filename/path
> 3. Since the subscribe log has dates, maybe -d should instead be used to
> parse for and then group by month??
>     Or perhaps you can add an option to specify the month you want, like
> Jan, Feb, so a '-m Nov' will give the join/leave for November..
> 4. To make it a little fancier, you can display the results in some
> tabulated format:
> Mailman Subscription Report for $Month
> -----------------------------------------------------
> LISTNAME ---------------JOINED---------LEFT
> list1                                15                    2
> list2                                  8                    12
> ....

I have updated the script at
<https://www.msapiro.net/scripts/subscribe_log> (mirrored at

It doesn't do exactly what you asked for, but it has a -l/--list option
which may be repeated for multiple lists and it prints a summary line

  For this list, joined = xx, left = xx

for each list processed. If you want to see only the list name and
summary you can pipe the output through

sed '/^    /d'

The biggest difference is there is no month option per se, but there are
options to specify begin and end dates so for example to see only
November you would specify

 --begin=2018-11-01 --end=2018-11-30

Mark Sapiro <mark at msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

More information about the Mailman-Users mailing list