Zum Inhalt springen
Mailman 3 mit Ubuntu 26.04

Mailman 3 mit Ubuntu 26.04

11. November 2026

Der folgende Beitrag befasst sich mit verschiednen Aspekten im Zusammenhang mit einer Mailman 3 Installation. Zunächst soll gezeigt werden, wie Mailman 3 möglichst einfach mit MariaDB, Nginx, Posfix und Hyperkitty auf Basis von APT auf Ubuntu 26.04 Server installiert werden kann. Anschließend werden verschiedene Aspekte der Konfiguration in den Blick genommen und gezeigt, welche Einstellungen gesetzt werden sollten.

  1. Variablen setzen

    SITE_OWNER=me@lists.vbox.local"
    
    WEB_HOST="lists.vbox.local"
    MAIL_DOMAIN="lists.vbox.local"
  2. MariaDB installieren und konfigurieren

    Installation mit APT.

    apt install -y mariadb-server

    MariaDB für den Einsatz mit Mailman 3 optimieren

    cat >/etc/mysql/mariadb.conf.d/99-mailman.cnf <<'EOF'
    [mysqld]
    
    innodb_file_per_table=1
    innodb_buffer_pool_size=512M
    innodb_log_file_size=256M
    
    max_allowed_packet=256M
    
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    EOF
  3. Weitere notwendige Pakete installieren

    apt install -y dbconfig-mysql
    apt install -y python3-mysqldb
    apt install -y python3-pymysql
  4. Mailman 3 installieren

    apt install -y mailman3-full

    Die folgenden Fragen können für einen lokale Testinstallatione wie folgt beantwortet werden. Für den Regelbetrieb müssen sie entsprechend der Gegebenheiten angepasst werden.

    Postfix

    • General mail configuration type
      • 5 = Local only
    • System mail name
      • lists.vbox.local

    Mailman3

    • Configure database for mailman3 with dbconfig-common?
      • Yes
    • MySQL application password for mailman3
      • leer lassen ODER eigenes Passwort vergeben
    • Password confirmation
      • ggf. Passwort wiederholen
    • Password of the database’s administrative user?
      • leer lassen

    Mailman3-Web

    • Configure database for mailman3-web with dbconfig-common?
      • yes
    • MySQL application password for mailman3-web?
      • leer lassen ODER eigenes Passwort vergeben
    • Password confirmation
      • ggf. Passwort wiederholen
    • Password of the database’s administrative user
      • leer lassen
  5. Datenbankkonfiguration abschließen

    dpkg --configure -a
  6. Dienste neu starten

    systemctl restart mailman3
    systemctl restart mailman3-web
  7. Site Owner setzen

    sed -i \
      "s/^site_owner:.*/site_owner: ${SITE_OWNER}/" \
      /etc/mailman3/mailman.cfg
    systemctl restart mailman3
  8. Postfix konfigurieren

    postconf -e \
    'relay_domains=hash:/var/lib/mailman3/data/postfix_domains'
    
    postconf -e \
    'transport_maps=hash:/var/lib/mailman3/data/postfix_lmtp'
    
    systemctl reload postfix
  9. Mailman-Web konfigurieren

    Hier wird die Beispielkonfiguration mailman.example.com mit den richtige Daten erstetzt.

    mkdir -p /var/log/nginx/mailman3
    
    touch /var/log/nginx/mailman3/access.log
    touch /var/log/nginx/mailman3/error.log
    
    sed -i \
    "s/server_name mailman.example.com;/server_name ${WEB_HOST};/" \
    /etc/mailman3/nginx.conf
    
    ln -sf \
      /etc/mailman3/nginx.conf \
      /etc/nginx/conf.d/mailman3.conf
    
    rm -f /etc/nginx/sites-enabled/default
    
    nginx -t
    
    systemctl reload nginx
  10. Mailman-Web Superuser erstellen

    Hier muss ein Passwort für den Webadmin vergeben werden.

    mailman-web createsuperuser \
      --username admin \
      --email "${SITE_OWNER}"
  11. Django Site konfigurieren

    cd /usr/share/mailman3-web
    
    python3 manage.py shell -c "
    from django.contrib.sites.models import Site
    s = Site.objects.get(id=1)
    s.domain='${WEB_HOST}'
    s.name='${WEB_HOST}'
    s.save()
    print(list(Site.objects.values()))
    "
    
    systemctl restart mailman3-web