From ArchWiki
Jump to navigation Jump to search

Mailman 3

Mailman 3 is a complete rewrite of Mailman 2. It's now based on Python 3 and composed of multiple components.

The core of Mailman is mailman-core.

Futhermore there are client bindings mailmanclient, an admnisitrative interface called Postorius and an archiver called Hyperkitty

Installing Mailman 3

First you need to install mailman-coreAUR. This installs Mailman 3, creates a mailman user and places configs in /var/lib/mailman

After setting up the core, you can now choose which components you want to install.


You need to install python2-django-postoriusAUR


You need to install python2-django-hyperkittyAUR. Hyperkitty offers full text search in the archives. In theory you can use multiple providers, however currently only python2-django-whooshAUR is available as a packge for Archlinux.

Setting up the web interface

Postorius and Hyperkitty are both Django apps. So you will need a Django project in order to run them.

You can either use a provided project which can be downloaded from here or start from scratch. The former is advised, as you need to know a little about Django in order to get the configuration right. There is still enough to do using the provided project files.

Depending on whether you want to run both Postorius and Hyperkitty or only one of them, you can choose the relevant branch from the repository. While you may choose to not provide archives, it's strongly advised to use Postorius.

You need to clone the repository to a location that you will serve on the internet. The Guide will assume you are using /srv/django/mailman.

You need to tweak /srv/django/mailman/ to your needs. At the very least you need to provide the following:

  • SECURITY_KEY: provide a random value
  • DEBUG: While enablind DEBUG for testing is fine, it should be disabled for production!
  • ALLOWED_HOSTS: provide all host names that Mailman will be accessible at
  • DATABASES: By default a sqlite database is used, if you want to use mysql or postgresql be sure to update the settings
  • MAILMAN_REST_API_URL: Edit according to your mailman-core configuration
  • MAILMAN_REST_API_USER: Edit according to your mailman-core configuration
  • MAILMAN_REST_API_PASS: Edit according to your mailman-core configuration
  • ADMINS: Django will email unhandled errors to this email. Be sure to provide an email that you check regurarly

In case you use Hyperkitty you need to also configure the following settings

  • MAILMAN_ARCHIVER_KEY: According to what you configured in mailman-hyperkitty's configuration
  • MAILMAN_ARCHIVER_FROM: Provide all IP Addresses that Hyperkitty will receive emails from (All IPs configured on your machine)