The Community Forums

Interact with an entire community of cPanel & WHM users!
  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Mailman Demystified

Discussion in 'Workarounds and Optimization' started by cPSethD, Dec 23, 2014.

  1. cPSethD

    cPSethD Registered
    Staff Member

    Jan 21, 2013
    Likes Received:
    Trophy Points:
    cPanel Access Level:
    DataCenter Provider
    Mailman is a tool that allows you to setup mailing lists. You can use mailman to setup public or private lists. Public lists would be useful for sending out promotional emails to clients, or emails about updates to services. Private mailing lists, on the other hand, are useful if you want to communicate with all employees in a company or only in specific departments. In this guide, I will be going over the scripts found in this software, what they do, and how to resolve some common issues encountered with Mailman.

    Mailman Paths

    Mailman /usr/local/cpanel/3rdparty/mailman
    Lists /usr/local/cpanel/3rdparty/mailman/lists/$MAILINGLIST/
    Logs /usr/local/cpanel/3rdparty/mailman/logs/{bounce,error,locks,mischief,post,runner,smtp,smtp-failure,subscribe,vette}
    Scripts /usr/local/cpanel/3rdparty/mailman/bin/

    Private vs. Public

    Private - Mailing list has private archives, are not displayed on mailman interface, and administrators have to approve subscriptions. Useful for internal communications (,,

    Public - Public archives, anyone can subscribe, and is displayed on mailman interface. Useful for customer facing communication (,

    cPanel Scripts

    The following scripts are all written by cPanel for basic Mailman administration and stored in /scripts/


    1. Checks if mailman is disabled (Checks if skipmailman=1 in /var/cpanel/cpanel.config)
    2. Updates mailman
    3. Fixes permissions on archives and mailing lists.
    4. Checks for qfiles (pickle files are the standard mechanism for object serialization) in mailman/qfiles/out and removes as needed
    5. Restarts mailman (/usr/local/cpanel/scripts/restartsrv --wait mailman)


    This script is deprecated. Instead, run /usr/local/cpanel/bin/mailman-install --force

    /usr/local/cpanel/bin/mailman-install --force

    This script is non-destructive. It does not remove existing lists.

    1. Adds mailman user, sets homedir to /usr/local/cpanel/3rdparty/ and sets correct groups on user
    2. Updates python if needed by fetching stable python and compiling from source.
    3. Installs dnspython dependancies after backing up current dnspython install.
    4. Sets up mailman cronjob. The cronjob is stored at /usr/local/cpanel/3rdparty/mailman/cron/ The cron is set to gzip the archives and remove old entries from the "bad" and "shunt" queue.
    5. Sets correct ownership and permissions on installation.


    Resets the hostname variable in the mailman configuration to match the hostname of the server. Used after changing the hostname of the server. This script is also ran nightly during /scripts/upcp --cron to prevent broken lists from incorrect hostnames.

    Restarts mailman service

    Corrects mailman archive permissions. Archive directory permissions should be 2750, while archives themselves should be 640.

    Calculates disk space usage of Mailman scripts and adds it to cPanel users total disk space usage.'

    Mailman scripts

    The following scripts are provided by the mailman software and are all located in /usr/local/cpanel/3rdparty/mailman/bin/

    add_members - Add members to a list from the command line.
    arch - Rebuild a list's archive.
    b4b5-archfix - rebuild archives created in < mailman 2.1b4
    change_pw - change a lists password
    check_db - Check a list's config database file for integrity
    check_perms - Check the permissions for the Mailman installation
    cleanarch - Clean up an .mbox archive file
    clone_member - Clone a member address
    config_list - Configure a list from a text file description - Convert a list's interpolation strings from %-strings to $-strings -> ran with withlist
    discard - Discard held messages
    dumpdb - Dump the contents of any Mailman `database' file - Export an XML representation of a mailing list
    find_member- Find all lists that a member's address is on - Reset a list's web_page_url attribute to the default setting
    genaliases - Regenerate Mailman specific aliases from scratch
    inject - Inject a message from a file into Mailman's incoming queue.
    list_admins - list all the owners of a mailing list
    list_lists - list all mailing lists
    list_members - list all members of a list
    list_owners - list all owners of a list
    mailmanctl - primary start up and shutdown script for qrunner daemon
    mmsitepass - set the site password - generate binary message catalog for textual translation description
    newlist - create a new unpopulated mailing list - Tells mailman where to locate mailman installation. Called by other scripts, never used on its own.
    qrunner - run one or more runners once or repeatedly
    rb-archfix - Reduce disk space usage for Pipermail archives
    remove_members - removes member from list - reset password for members of mailing list
    rmlist - removed the components of a mailing list with impunity
    show_qfiles - show the contents of one or more mailman queue files
    sync_members - sync a mailing list membership with a flat file
    transcheck - ensure variables in translations match templates and catalog
    unshunt - move a message from the shunt queue to the original queue
    update - perform all necessary upgrades
    version - print mailman version
    withlist - general framework for interacting with mailing list object

    Mailing List Delegation

    You can delegate administrative rights on a mailing list to specified list members. Delegates can approve messages that await approval, add and remove members, and act as administrators for a list. To manage the Delegation settings on a mailing list, search for the name of the mailing list that you wish to manage and click the appropriate Delegation link.

    How to delegate administrative rights to an additional user

    To delegate administrative rights on a mailing list, perform the following steps:

    1. Under Available Users, select the email addresses of the users to whom you wish to delegate administrative rights.
    2. Click the right arrow button
    3. Click Save.

    How to remove administrative rights from a user

    To remove administrative rights from an address on a mailing list, perform the following steps:

    1. Under List Administrators, select the email addresses of the users from which you wish to remove administrative rights.
    2. Click the left arrow button.
    3. Click Save.

    Common Issues and fixes

    How do I change links in the Mailman interface to point to instead of

    To point URLs in the Mailman interface to instead of, enable the Prefix "mail." onto Mailman URLs option in WHM's Tweak Settings interface.

    What should I do if I get an error that says We hit a bug?

    If you get the We hit a bug error message when you access the Mailman interface, check the /usr/local/cpanel/3rdparty/mailman/logs/error file for error messages. Based on the error message in the log, the following steps may resolve the issue:

    1. Use the /script/fixmailman script to resolve common Mailman issues.
    2. Use the /scripts/fixcommonproblems script to correct mailbox permissions, common mailman issues, CGI script issues, NDC and quota issues.
    3. Update cPanel & WHM with the /scripts/upcp script.
    4. To reinstall Mailman, use the /usr/local/cpanel/bin/mailman-install --force command.
    5. Mailman uses Python. If there is an issue with Python, reinstall Python with the /scripts/pythonup --force command.

    The requested URL /pipermail/$LIST_NAME/index.html was not found on this server.

    Disable Symlink Patch in EasyApache.
  2. AM2015

    AM2015 Member

    Jan 1, 2015
    Likes Received:
    Trophy Points:
    cPanel Access Level:
    Root Administrator
    Thank you so much for this helpful introduction!

    I have a question: I will soon be migrating a set of Mailman lists from another, non-CPanel server.

    Currently the lists is configured so that the list information page and web links are at the url: -- email is sent and received from

    I'm a little confused by the WHM tweak settings option - is "mail" the only prefix that can be used? That is, would it be possible for me to create the same settings and list names that I already have?

    Or will WHM/CPanel require the use of different naming conventions?

    Are there any other potential issues I should be aware of with a list migration?

Share This Page