1.80. Majordomo Postfix
Diese Anleitung beschreibt die Installation des Mailinglisten-Managers Majordomo auf einem mit Postfix betriebenen Mailserver.
1.80.1. Installation von Majordomo
Bemerkung
Die Installation wurde auf einem OpenBSD-Server getestet und sie wird auch so beschrieben. Prinzipiell sollte sie auf anderen BSD-Systemen genauso ablaufen, evtl. sind einige Pfadangaben nicht so vorzufinden und müssen angepasst werden.
Majordomo ist nicht als Package verfügbar, daher wird es ueber die Ports installiert.
# cd /usr/ports/mail/majordomo
# make install clean
Dies sollte ohne Probleme und Fehlermeldungen den Port installieren.
1.80.2. Konfiguration von Majordomo
Für eine einfache Standardinstallation muss in der majordomo.cf nur ein Parameter verändert werden.
# vi /etc/majordomo/majordomo.cf
$whereami = "example.com";
$whereami ist so anzupassen, dass es den Hostnamen der Maschine verwendet.
1.80.3. Konfiguration von Postfix
Um das Beispiel und die Konfiguration recht einfach zu halten und zu erklären wird mit Hash-Maps gearbeitet. Es ist dementsprechend auch möglich alle Daten in eine Datenbank, wie MySQL oder auch in einem Verzeichnissdienst wie OpenLDAP zu speichern.
In der main.cf
von Postfix müssen nur zwei Parameter angepasst
werden, virtual_alias_maps und alias_maps. Mit virtual maps und
virtual mailboxes ist es nicht möglich Mailinglisten-Manager zu nutzen,
daher muss der Umweg über die alias_maps
gemacht werden.
# vi /etc/postfix/main.cf
virtual_alias_maps = ..., hash:/etc/postfix/majordomo_virtual_aliases
alias_maps = ..., hash:/etc/postfix/majordomo_aliases
Die Grundeinstellung für Majordomo werden in den Hash-Maps vorgenommen.
# vi /etc/postfix/majordomo_virtual_aliases
majordomo@example.com majordomo
majordomo-owner@example.com mailinglistenmanager@example.com
owner-majordomo@example.com mailinglistenmanager@example.com
# vi /etc/postfix/majordomo_aliases
majordomo "|/usr/local/lib/majordomo/wrapper majordomo"
majordomo-owner@example.com und owner-majordomo@example.com leiten wir an die Email-Adresse des Mailinglisten-Managers weiter. Also die Person, die die Mailinglisten-Server betreut. majordomo@example.com wird an majordomo in der Map majordomo_aliases weitergeleitet. Dort wird der wrapper dann ausgeführt.
Mit postmap werden schließlich die Hash-Maps erstellt.
# /usr/local/sbin/postmap hash:/etc/postfix/majordomo_virtual_aliases
# /usr/local/sbin/postmap hash:/etc/postfix/majordomo_aliases
Dies erstellt die Dateien /etc/postfix/majordomo_virtual_aliaeses.db
und /etc/postfix/majordomo_aliases
, die von Postfix gelesen werden
können.
Jetzt muss noch nur die Konfiguration von Postfix neugeladen werden dies kann mit einem
# /usr/local/sbin/postfix reload
geschehen.
1.80.3.1. Anmerkung zu OpenBSD
Da Postfix in der Standardkonfiguration unter OpenBSD unter den Privilegien, des Users nobody laufen, müssen die Permissions des wrappers angepasst werden. Dies kann mit einem
# chmod 666 /usr/local/lib/majordomo/wrapper
durchgeführt werden.
Damit ist die Installation von Majordomo abgeschlossen und man kann zum Testen eine Mail an majordomo@example.com schicken, dieser sollte einen jetzt eine Antwort zurück senden.
1.80.4. Anlegen einer Mailingliste
Um eine Mailingliste anzulegen müssen lediglich die beiden Hash-Maps erweitert und zwei Dateien im Listenverzeichniss angelegt werden. In einer Datei werden alle Listenmitgleider gespeichert und die zweiten enthält die Beschreibung der Liste.
Als erstes wird eine leere Datei im Listenverzeichniss erstellt. Der Name dieser Datei legt auch gleichzeitig den Namen der Mailingliste fest. In diesem Beispiel soll die Liste foo heissen und wird über foo@example.com zu erreichen sein.
# touch /var/spool/majordomo/lists/foo
Danach folgt die Datei mit der Listenbeschreibung
# vi /var/spool/majordomo/lists/foo.info
Dies ist eine Test-Mailingliste.
# vi /etc/postfix/majordomo_virtual_aliases
foo@example.com foo
foo-request@example.com foo-request
foo-list@example.com foo-list
foo-owner@example.com betreuer@example.com
owner-foo@example.com betreuer@example.com
Dies ist die Standardkonfiguration für eine Mailingliste ohne Digest und Archiv. foo-owner und owner-foo werden an den Betreuer/Moderator der Mailingliste weitergeleitet. Der Rest wird an die passenden Einträge von majordomo_aliases weitergeleitet.
# vi /etc/postfix/majordomo_aliaes
foo "|/usr/local/lib/majordomo/wrapper resend -l foo foo-list"
foo-request :include:/var/spool/majordomo/lists/foo
foo-list "|/usr/local/lib/majordomo/wrapper -l foo"
Um bei ausgehenden Mails majordomo Kommandos abzufangen wird diese Konfiguration gewählt.
Abschliessend müssen noch die Hash-Maps aktualisiert werden.
# /usr/local/sbin/postmap hash:/etc/postfix/majordomo_virtual_aliases
# /usr/local/sbin/postmap hash:/etc/posftix/majordomo_aliases
Um sich jetzt zu subscriben muss eine Mail an majordomo@example.com mit dem Text subscribe foo im body geschickt werden.
Weitere Einstellungen zur Mailingliste kann man unter
/var/spool/majordomo/lists/foo.config
vornehmen.
1.80.5. Majordomo Kommandos
Informationen ueber weitere/alle Majordomo Kommandos findet man unter:
Zuletzt geändert: 2023-07-22