Mailman - ArchWiki

# Mailman

From ArchWiki
Jump to navigation Jump to search

Mailman is a mailing list management system. It is used in conjunction with a mail server.

## Installation

Install the mailman3 package.

Note: mailman3 will replace mailman in the near future. As both applications make use of `/var/lib/mailman` as state directory and the `mailman` user, they currently conflict and can not be installed alongside each other.

Mailman can be used in conjunction with Postorius (for configuration) and Hyperkitty (for archiving).

Note: Mailman runs as a dedicated `mailman` user, therefore any calls to the `mailman` executable have to be done as the `mailman` user.

## Configuration

All configuration for Mailman takes place in `/etc/mailman.cfg`. The schema explaining all possible configuration options and setting the defaults is stored in `/usr/lib/python3.8/site-packages/mailman/config/schema.cfg`.

The configuration is also accessible via the command line. Run the following command as the `mailman` user (e.g. using sudo or su):

    [mailman]$ mailman conf

### Database

Mailman by default uses an SQLite database in `/var/lib/mailman/data/`, but can be configured to use MariaDB or PostgreSQL.

#### SQLite

The default location for the SQLite database is already reflected in the `schema.cfg` and therefore does not have to be set in Mailman's configuration.

    /etc/mailman.cfg

    [database]
    url: sqlite:////var/lib/mailman/data/mailman.db

#### MariaDB

Install the python-pymysql package and configure a database on MariaDB.

    /etc/mailman.cfg

    [database]
    class: mailman.database.mysql.MySQLDatabase
    url: mysql+pymysql://myuser:mypassword@mymysqlhost/mailman?charset=utf8&use_unicode=1

#### PostgreSQL

Install the python-psycopg2 package and create a database using PostgreSQL.

    /etc/mailman.cfg

    [database]
    class: mailman.database.postgresql.PostgreSQLDatabase
    url: postgres://myuser:mypassword@mypghost/mailman

## Running

Enable and start `mailman3.service`.

Several systemd services with timers exist, taking care of various aspects of the list management:

- `mailman3-digests.timer`: for sending out daily digests to subscribers
- `mailman3-gatenews.timer`: for hourly polling of NNTP servers for news
- `mailman3-notify.timer`: for sending out daily notifications to admins about pending requests

## Setup

### Integrate with a mail server

This article or section needs expansion.

Reason: Example for setup with mail server (based on upstream documentation). (Discuss in Talk:Mailman#)

### Integrate with Hyperkitty

Mailman does not automatically archive mails on its own. The Hyperkitty web application is used for this purpose. Based on a plugin, mailman is able to send mails to a Hyperkitty instance for archival.

Install the mailman3-hyperkitty package and configure `/etc/mailman-hyperkitty.cfg`.

Afterwards, make mailman aware of the plugin:

    /etc/mailman.cfg

    [archiver.hyperkitty]
    class: mailman_hyperkitty.Archiver
    enable: yes
    configuration: /etc/mailman-hyperkitty.cfg

## Tips and tricks

### Migrate from mailman < 3.0

Mailman offers the possibility of importing mailman < 3.0 based list databases (`config.pck`). Run the following command as the `mailman` user (e.g. using sudo or su):

    [mailman]$ mailman import21 LISTSPEC PICKLE_FILE

Here, `LISTSPEC` represents a fully-qualified name of a list to import (e.g. `list@example.com`) and `PICKLE_FILE` the path to the list's `config.pck` file.

Note: The mailman2 list to be imported must already exist on the target mailman instance.

### REST API

Mailman exposes a REST API, which can be interfaced using custom tooling, based on python-mailmanclient.

## See also

- Mailman Documentation - The upstream documentation
- Mailmanclient Documentation - The upstream documentation
- Connecting to Mailman - The upstream documentation on mailman3-hyperkitty
- Mailman Suite Documentation - The (high level) upstream documentation for the entire Mailman Suite (Mailman, Hyperkitty and Postorius)

Categories:

- Email
- Mail server

Hidden category:

- Pages or sections flagged with Template:Expansion