HEX
Server: LiteSpeed
System: Linux shams.tasjeel.ae 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 08:09:09 EST 2025 x86_64
User: infowars (1469)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //proc/self/root/usr/lib/check_mk_agent/plugins/mailman2_lists
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
# Copyright (C) 2019 Checkmk GmbH - License: GNU General Public License v2
# This file is part of Checkmk (https://checkmk.com). It is subject to the terms and
# conditions defined in the file COPYING, which is part of this source code package.
"""
Monitor Mailman 2 mailing lists.
"""

__version__ = "2.3.0p38"

# This Checkmk-Agent plugin gathers information about mailinglists hosted
# by the local mailman instance.

# Needed if you have located your mailman python modules not in default
# python module paths
import sys

sys.path.append("/usr/local/mailman")
sys.path.append("/usr/lib/mailman")

# Set to True to filter out all "hidden" mailinglists
only_advertised = True

from Mailman import MailList, Utils  # type: ignore[import] # pylint: disable=import-error

# 1. list memberships
sys.stdout.write("<<<mailman_lists>>>\n")
total_members = set([])
for name in sorted(Utils.list_names()):
    mlist = MailList.MailList(name, lock=0)
    if only_advertised and not mlist.advertised:
        continue

    rmembers = mlist.getRegularMemberKeys()
    dmembers = mlist.getDigestMemberKeys()
    members = rmembers + dmembers
    total_members.update(members)

    sys.stdout.write("%s %d\n" % (name, len(members)))
sys.stdout.write("TOTAL %d\n" % len(total_members))