Wenn es um Mailinglisten geht, dann ist Mailman oft die erste Wahl. Das Programm ist nicht nur ausgereift und weitverbreitet, sondern beinhaltet zudem viele Funktionen, die es in einer komfortablen Weboberfläche anbietet. Doch für manche Anwendungsfälle gibt es bessere Alternativen: Mit Mlmmj (Mailing List Management Made Joyful) lernen Sie einen noch recht unbekannten Vertreter dieser Gattung kennen, auf den sich ein genauerer Blick lohnt [1].
Bei der Planung der Infrastruktur für das heutige Libre-Office-Projekt spielten Mailinglisten eine zentrale Rolle, sind sie doch das Hauptkommunikationsmittel der Community. Die Anforderungen waren hier recht speziell: Traditionell gibt es im Projekt mehrere gleichnamige Mailinglisten in unterschiedlichen Subdomains, beispielsweise »discuss@de.libreoffice.org
«
und »discuss@si.libreoffice.org
«
, und die Moderation wird von zahlreichen Freiwilligen rund um den Globus per E-Mail durchgeführt.
Genau bei diesen beiden Anforderungen musste Mailman passen – die Moderation wird dort vor allem ins Web verlagert, geschützt durch ein für alle Moderatoren gleiches Passwort, und gleichnamige Mailinglisten sind erst ab der kommenden Version 3.0 möglich. Nach der Evaluation mehrerer Systeme fiel die Wahl schließlich auf Mlmmj, das durch seine Ähnlichkeit zum damals bei OpenOffice.org eingesetzten Ezmlm geradezu prädestiniert war, mussten sich die Anwender doch nur wenig umgewöhnen. Während Ezmlm ausschließlich mit Qmail funktioniert, ist Mlmmj kompatibel zu den gängigsten Mailservern, darunter auch dem eingesetzten Postfix.
Die Installation von Mlmmj ging auf dem Testsystem, einem aktuellen Ubuntu 10.04 LTS, leicht von der Hand: Ein simples »apt-get install mlmmj
«
bringt das Paket auf den Server. Mlmmj läuft allein schon aus Sicherheitsgründen in seinem eigenen Benutzerkontext. Unter Ubuntu legt das Paket keinen Benutzer an, ein Aufruf von »adduser --system mlmmj
«
führt jedoch zum Ziel.
Darüber hinaus ist es sinnvoll, Mails für den »mlmmj
«
-Systembenutzer an den Postmaster weiterzuleiten, je nach Mailsystem beispielsweise per ».forward-
«
Datei oder über »/etc/aliases
«
. Nach dem Anlegen des benötigten Spool-Verzeichnisses mittels
mkdir /var/spool/mlmmj && chown mlmmj: /var/spool/mlmmj
ist die Paketinstallation abgeschlossen. Danach geht es an die Integration ins Mailsystem, die auf der Dokumentationsseite von Mlmmj gut beschrieben ist. Dieser Artikel erklärt im Weiteren, wie Sie Mlmmj mit dem Postfix-Mailserver verbinden.
Die Listenadressen werden idealerweise in separaten Dateien, getrennt vom übrigen Mailsystem, abgelegt – beispielsweise in »/var/spool/mlmmj/virtual.regexp
«
und »/var/spool/mlmmj/transport
«
. Damit Postfix die Dateien überhaupt verarbeitet, müssen Sie die folgenden beiden Zeilen in »/etc/postfix/main.cf
«
hinzufügen:
virtual_alias_maps = regexp:/var/spool/mlmmj/virtual.regexp transport_maps = regexp:/var/spool/mlmmj/transport
Zudem sollten Sie noch die folgende Option aktivieren:
mlmmj_destination_recipient_limit = 1
Mlmmj bindet sich in Postfix als sogenannter Transport ein. Um den Dienst bekanntzumachen, müssen Sie daher noch eine weitere Zeile in die dafür zuständige Datei »/etc/postfix/master.cf
«
eintragen (Listing 1).
Listing 1
master.cf
Dieser Eintrag weist Postfix an, für den Mlmmj-Transport die Datei »/usr/bin/mlmmj-receive
«
aufzurufen, die sich um die Verarbeitung der Nachrichten kümmert.
Zum Abschluss muss Postfix, sofern nicht bereits geschehen, noch Kenntnis über die virtuelle(n) Domain(s) erlangen, auf denen die Mailinglisten laufen, beispielsweise in Form eines Eintrags in »/etc/postfix/virtual
«
. Denken Sie daran, dem RFC entsprechend auch Aliase für »abuse@
«
und »postmaster@
«
anzulegen, die idealerweise auch weitestgehend ungefiltert bleiben. Nur so ist sichergestellt, dass bei Problemen ein richtiger Ansprechpartner erreichbar ist, was einem zudem lästige Einträge auf Blacklisten erspart. Ein korrekter Eintrag in »/etc/postfix/virtual
«
sieht beispielsweise so aus wie Listing 2. Zum Abschluss führen Sie noch »postfix reload
«
und »postmap /etc/postfix/virtual
«
aus, dann ist die Postfix-Integration abgeschlossen.
Listing 2
virtual
Das Anlegen der ersten Mailingliste erfordert mehrere Schritte, die sich je nach verwendetem Mailsystem unterscheiden. Im Fall von Postfix steht zunächst das Zuweisen des Transports in der Datei »/var/spool/mlmmj/transport
«
an. Das Format, wie in der Dokumentation beschrieben, lautet dabei idealerweise:
/^(domain\.tld--listenname).*$/ mlmmj:domain.tld/listenname
Im Fall der Libre-Office-Listen sieht die Konfiguration aus wie in Listing 3.
Listing 3
Transports für Libre Office
Um den Aliasen nun Mailadressen zuzuweisen, bedarf es der zweiten Datei »/var/spool/mlmmj/virtual.regexp
«
. Das Format lautet
/^(listenname.*)@(domain\.tld)$/ domain.tld--${1}
Listing 4 zeigt wieder die Konfiguration der Libre-Office-Listen.
Listing 4
Transports für Libre Office
Das geübte Auge erkennt, dass durch diese Einträge drei Mailinglisten definiert werden: »announce@documentfoundation.org
«
, »discuss@documentfoundation.org
«
und »l10n@global.libreoffice.org
«
.
Als Basispfad gilt dabei »/var/spool/mlmmj
«
. Die Liste »announce@documentfoundation.org
«
findet sich folgerichtig in »/var/spool/mlmmj/documentfoundation.org/announce
«
wieder, die »l10n@global.libreoffice.org
«
indes in »/var/spool/mlmmj/global.libreoffice.org/l10n
«
.
Nach einer Änderung der Virtual- und Transports-Dateien empfiehlt sich wieder ein »postfix reload
«
, um die Konfiguration zu aktivieren.