Public | Automated Build

Last pushed: 2 years ago
Short Description
Mailman 3 in Docker. Needs running postfix
Full Description

Mailman in Docker

Originally, this image was based on and therefore forked and included. That's why the configuration is based on an own json-format.

Nevertheless, the container currently runs again .

Configuration of the container

The configuration needs two aspects: One of the container itself plus the posfix-configuration.
Furthermore, the postfix-process must have access to the mounted mailman-volume /mailman/var.
An example docker-compose File is provided in the repository.

Postfix Configuration

The following config must be added to the postfix.cfg of a linked postfix-process.

By using, the following lines must be added to the .

recipient_delimiter = +
unknown_local_recipient_reject_code = 550
owner_request_special = no
transport_maps = hash:/mailman/var/data/postfix_lmtp
local_recipient_maps = hash:/mailman/var/data/postfix_lmtp
relay_domains = hash:/mailman/var/data/postfix_domains

JSON-Config example

  "settings": {
    "myhostname": "",
    "mailman": {
      "secret_key": "enter-a-random-secret-key-here",
      "language_code": "en-us",
      "time_zone": "America/Chicago",
      "admin_email": "",
      "domains": [""]

The first domain is used as hostname. The secret key must contain only [A-Za-z0-9].

Language Code / Time Zone

supported language codes:

supported time zones:

Config changes

After config changes, mailman and the core container have to be restarted.

First run

The first run takes some minutes. Check docker logs to see the progress.

Create superuser

docker exec -it CONTAINER_ID /mailman/bin/mailman-web-django-admin createsuperuser

Footer / Welcome Templates

The default templates can be overriden by placing some text files in the templates directory.

Docker Pull Command
Source Repository