Mailinglisten · 5 min read · Sep 09, 2025
Wie man Mailman (mit Postfix) auf Debian Squeeze installiert und konfiguriert
Wie man Mailman (mit Postfix) auf Debian Squeeze installiert und konfiguriert
Version 1.0
Autor: Falko Timme
Folge mir auf Twitter
Mailman ist ein Open-Source-Manager für Mailinglisten, d.h. er kann verwendet werden, um E-Mail-Diskussionen und Newsletter-Listen zu verwalten. Es ist wahrscheinlich der beliebteste und am weitesten verbreitete Mailinglisten-Manager im Internet. Dieses Tutorial erklärt, wie man Mailman auf einem Debian Squeeze-Server mit einem Postfix-Mailserver installiert und konfiguriert.
Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!
1 Vorbemerkung
In diesem Tutorial werde ich einen virtuellen Host mit dem Hostnamen lists.example.com konfigurieren, auf dem ich Mailman installieren werde. lists.example.com ist auch der richtige Teil der E-Mail-Adressen der Mailingliste, die in Mailman konfiguriert werden, d.h. E-Mails an eine Mailingliste müssen an die Adresse
Da Ihr Hostname anders sein wird, passen Sie dieses Tutorial bitte entsprechend an. Stellen Sie außerdem sicher, dass Ihr Hostname im DNS existiert.
Mailman kann mit vielen Mailservern verwendet werden (z.B. Postfix, Exim, Sendmail, Qmail). Ich werde in diesem Tutorial Postfix verwenden. Stellen Sie sicher, dass Sie eine funktionierende Postfix-Installation haben, zum Beispiel wie in diesem Tutorial gezeigt: Virtuelle Benutzer und Domains mit Postfix, Courier, MySQL und SquirrelMail (Debian Squeeze)
2 Installation von Mailman und Apache
Da Mailman mit einem Web-Frontend kommt, benötigen wir zusätzlich zu Mailman einen Webserver. Ich wähle Apache. Mailman und Apache können wie folgt installiert werden:
apt-get install mailman apache2Sie werden die folgenden Fragen/Nachrichten sehen:
Sprachen, die unterstützt werden sollen: <– de (Deutsch)
Fehlende Site-Liste
Mailman benötigt eine sogenannte “Site-Liste”, die die Liste ist, von der Passwort-Erinnerungen und dergleichen versendet werden. Diese Liste muss erstellt werden, bevor Mailman gestartet wird. Um die Liste zu erstellen, führen Sie “newlist mailman” aus und folgen Sie den Anweisungen auf dem Bildschirm. Beachten Sie, dass Sie Mailman danach auch starten müssen, indem Sie /etc/init.d/mailman start verwenden. <– Ok
Mailman kommt mit einer Apache-Konfigurationsdatei, /etc/mailman/apache.conf, die wir nach /etc/apache2/sites-available/mailman.conf kopieren:
cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.confÖffnen Sie /etc/apache2/sites-available/mailman.conf…
vi /etc/apache2/sites-available/mailman.conf… und fügen Sie die folgende vhost-Konfiguration in die Datei ein (es gibt bereits einen vhost für lists.example.net in der Datei, der auskommentiert ist - bitte verwenden Sie diesen vhost nicht, da sich meine vhost-Konfiguration ein wenig unterscheidet, obwohl sie recht ähnlich aussieht):
| [...] |
Die vorletzte Zeile ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo ist optional; sie sorgt dafür, dass Sie, wenn Sie zu http://lists.example.com/ gehen, zu http://lists.example.com/listinfo umgeleitet werden. Dies macht Sinn, wenn Sie keine Dateien im Document Root /var/www/lists zu bedienen haben.
Erstellen Sie als Nächstes das Document Root /var/www/lists, aktivieren Sie die lists.example.com vhost-Konfiguration und starten Sie Apache neu:
mkdir /var/www/lists
a2ensite mailman.conf
/etc/init.d/apache2 restart
Da wir hier einen vhost verwenden (lists.example.com), müssen wir die folgenden Variablen in /etc/mailman/mm_cfg.py anpassen:
vi /etc/mailman/mm_cfg.py| [...] DEFAULT_URL_PATTERN = 'http://%s/' [...] DEFAULT_EMAIL_HOST = 'lists.example.com' [...] DEFAULT_URL_HOST = 'lists.example.com' [...] |
3 Konfiguration von Postfix
Jetzt müssen wir Postfix konfigurieren. Führen Sie zuerst aus:
postconf -e ‘relay_domains = lists.example.com’
postconf -e ‘mailman_destination_recipient_limit = 1’
Öffnen Sie dann /etc/postfix/master.cf…
vi /etc/postfix/master.cf… und stellen Sie sicher, dass Sie die folgenden Zeilen darin haben (sie sollten standardmäßig vorhanden sein):
| [...] mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} [...] |
Als Nächstes müssen wir die Domain lists.example.com mit dem mailman: transport verknüpfen. Wie Sie dies tun, hängt von Ihrer Postfix-Konfiguration ab. Wenn Sie beispielsweise Ihren Server gemäß dem Tutorial Virtuelle Benutzer und Domains mit Postfix, Courier, MySQL und SquirrelMail (Debian Squeeze) eingerichtet haben, werden die Transports in einer MySQL-Datenbank gespeichert; in den meisten anderen Setups wird die Datei /etc/postfix/transport verwendet, um Transports zu erstellen. Ich werde beide Fälle in den Kapiteln 3.1 und 3.2 beschreiben.
3.1 Transports in einer MySQL-Datenbank
Wenn Sie Ihren Server gemäß dem Tutorial Virtuelle Benutzer und Domains mit Postfix, Courier, MySQL und SquirrelMail (Debian Squeeze) eingerichtet haben, werden die Transports in der Transporttabelle in der Mail-MySQL-Datenbank gespeichert. Um den notwendigen Transport zu erstellen, melden Sie sich bei MySQL an…
mysql -u root -p… und führen Sie die folgenden MySQL-Befehle aus:
USE mail;
INSERT INTO transport (domain, transport) VALUES (‘lists.example.com’, ‘mailman:’);
quit;
Starten Sie Postfix danach neu:
/etc/init.d/postfix restart3.2 Transports in /etc/postfix/transport
Wenn Sie Ihren Transport nicht in einer MySQL-Datenbank haben, verwenden Sie wahrscheinlich die Datei /etc/postfix/transport. In diesem Fall können Sie den notwendigen Transport wie folgt einrichten:
postconf -e 'transport_maps = hash:/etc/postfix/transport'Öffnen Sie /etc/postfix/transport…
vi /etc/postfix/transport… und fügen Sie die folgende Zeile hinzu:
| lists.example.com mailman: |
Führen Sie danach aus
postmap -v /etc/postfix/transportund starten Sie Postfix neu:
/etc/init.d/postfix restart 4 Erstellen der Mailman-Mailingliste
Bevor wir Mailman verwenden können, müssen wir eine Mailingliste namens mailman erstellen; dies ist obligatorisch - ohne sie wird Mailman nicht gestartet:
newlist --urlhost=lists.example.com --emailhost=lists.example.com mailmanIn den meisten Fällen sind die –urlhost und –emailhost Schalter nicht notwendig, da unser vhost bereits lists.example.com heißt und wir es auch in /etc/mailman/mm_cfg.py (DEFAULT_EMAIL_HOST und DEFAULT_URL_HOST) haben, aber wenn Sie sicherstellen möchten, dass Mailman den richtigen Hostnamen verwendet, verwenden Sie diese Schalter.
root@server1:~# newlist –urlhost=lists.example.com –emailhost=lists.example.com mailman
Geben Sie die E-Mail-Adresse der Person ein, die die Liste verwaltet: <– geben Sie die E-Mail-Adresse des Listenadministrators an, z.B. [email protected]
Anfängliches Mailman-Passwort: <– mailman_password
Um die Erstellung Ihrer Mailingliste abzuschließen, müssen Sie Ihre /etc/aliases (oder äquivalente) Datei bearbeiten, indem Sie die folgenden Zeilen hinzufügen und möglicherweise das Programm newaliases ausführen:
Mailingliste Mailman
mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”
Drücken Sie die Eingabetaste, um den Mailman-Besitzer zu benachrichtigen… <– ENTER
root@server1:~#
Öffnen Sie jetzt /etc/aliases und fügen Sie die Aliase hinzu, die Sie in der Ausgabe des newlist-Befehls sehen (dies muss manuell für jede neue Liste erfolgen, die Sie erstellen):
vi /etc/aliases| [...] ## Mailingliste Mailman mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" |
Wann immer Sie /etc/aliases ändern, müssen Sie ausführen
newaliases
/etc/init.d/postfix restart
Danach können wir endlich Mailman starten:
/etc/init.d/mailman startroot@server1:~# /etc/init.d/mailman start
Starte Mailman Master Qrunner: mailmanctl.
root@server1:~#
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.