Mailman installieren
Posted on Sat 19 May 2012 in linux • 3 min read
So, mal eine kleine Anleitung, wie man Mailman installieren kann, unter anderem für mich als Gedächtnisstütze:) Aber erstmal:
Was ist eigentlich Mailman?
Mailman ist ein Listenserver, welcher einem Mailinglisten bereitstellt. Das ist zum Beispiel nützlich, wenn man in einer größeren Gruppe kommunizieren will, kann zum Beispiel auch als eine Art Newsletter herhalten. Benutzer melden sich an einer Mailingliste an und erhalten dann die Mails, welche an diese Liste gehen. Man kann detailliert einstellen, wer an die Liste eine Mail schreiben darf und ob Anhänge erlaubt sind und noch vieles mehr. Man kann das ganze also auch als Forum betrachten, nur dass man neue Beiträge direkt in seinem Mailclient lesen kann.
Was wird für Mailman benötigt?
Um Mailman installieren zu können, sollte man ein paar Dinge haben:
- Einen Server, auf dem man Root-Rechte hat
- Eine IP-Adresse, welche statisch ist (keine Wählverbindung!)
- Einen installierten und konfigurierten MTA (z.B. Postfix)
- Eine Domain, zu der man auch Subdomains aufschalten kann Dann kann es auch schon los gehen :)
Die Installation
HINWEIS: Das ist eher was für erfahrene Linuxer, die Wissen was sie tun und sich auch helfen können, wenn mal was nicht mehr geht!
Ich zeige die Installation und auch die Konfiguration für Ubuntu 10.04 Server Edition mit Postfix als MTA, es funtioniert aber auch mit anderen MTAs! Es ist lediglich folgendes Paket zu installieren:
mailman
Danach müssen noch die Berechtigungen geprüft und berichtigt werden,
ein Aufruf von check_perms
hilft hier weiter. Um die gefundenen
Fehler zu korrigieren, das Script noch einmal mit dem Parameter -f
aufrufen, so oft, bis keine Änderung bei der Ausgabe mehr
stattfindet oder halt nichts mehr gefunden wird. Eventuell ist dann
noch etwas Handarbeit nötig, das Script scheitert anscheinend
manchmal an Symlinks.
Die Konfiguration
Ein bisschen tricky, da man doch verhältnismäßig wenig verschiedene
Anleitungen im Netz findet, also muss man ein wenig schauen,
probieren und hoffen ;) Zuerst machen wir mal ein Backup von
/etc/postfix
, man weiß ja nie, und Backups sind immer gut. Dann
machen wir uns an die eigentliche Konfiguration:
Mailman
Zuerst Mailman, in der Datei /etc/mailman/mm_cfg.py
:
# Die Sprache
DEFAULT_SERVER_LANGUAGE = 'en'
# Der MTA
MTA='Postfix'
#-------------------------------------------------------------
# Default domain for email addresses of newly created MLs
DEFAULT_EMAIL_HOST = 'lists.example.de'
#-------------------------------------------------------------
# Default host for web interface of newly created MLs
DEFAULT_URL_HOST = 'lists.example.de'
#-------------------------------------------------------------
# Required when setting any of its arguments.
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['lists.example.de']
# Der Listenverwalter
DEB_LISTMASTER = 'postmaster@example.de'
Ich gehe hier davon aus, dass Mailman auf einer eigenen Subdomain installiert wird (lists.*). Ein besonderer Augenmerk sollte auf der Zeile mit dem MTA liegen: Auch wenn im "Handbuch" von Mailman steht, dass für Postfix MTA=none gesetzt werden soll, hat dies bei mir nicht funktioniert, so geht es, allerdings mit Anführungszeichen! Nun legen wir unsere Verwaltungsliste an, sie heißt Mailman:
newlist mailman
Es werden dann ein paar Daten abgefragt, wie die Mail-Adresse des Listenverwalters. Soviel zu Mailman bisher, jetzt machen wir ihn mit Postfix bekannt.
Postfix
Als erstes editieren (gegebenenfalls anlegen) wir die Datei
/etc/postfix/transport
:
lists.example.de mailman:
An die main.cf fügen wir folgendes an, bzw. erweitern bestehende Einträge:
# Mailman
relay_domains = lists.example.de
relay_recipient_maps = hash:/var/lib/mailman/data/virtual-mailman
transport_maps = hash:/etc/postfix/transport
mailman_destination_recipient_limit = 1
Nun folgt noch eine Änderung in der master.cf
, hier sind folgende
zwei Zeilen einzufügen:
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
Hier sollte darauf geachtet werden, dass diese zwei Zeilen schon da sein können, das war bei mir der Fall, ich weis allerdings nicht warum.
Abschlussarbeiten
Zuerst werden Standard-Einstellungen für die erste Liste geladen, und ein Passwort zum erstellen neuer Listen angelegt:
config_list -i /var/lib/mailman/data/sitelist.cfg mailman
mmsitepass
und dann alle Änderungen übernehmen:
postmap transport
/usr/lib/mailman/bin/genaliases
/etc/init.d/postfix reload
/etc/init.d/mailman start
Jetzt sollte Mailman starten, ohne dass es Probleme gibt, wenn das nicht der Fall ist, steht in der Fehlermeldung recht gut, woran es hapert. Wichtig ist hier auch, die Maillogs zu checken und Postfix zu testen, wer schickt sich nicht gerne viele nette Mails;) Jetzt ist man quasi schon fertig, aber das ganze ist noch etwas Benutzer unfreundlich, denn momentan kann man sich nur mit Mails an mailman in Listen eintragen usw. Auch fehlt ein Admininterface... Also wird noch schnell weiterkonfiguriert:
Apache
Mailman liefert bereits eine Apache Konfigurationsdatei mit, diese muss nur noch aktiviert werden:
ln -s /etc/mailman/apache.conf /etc/apache2/sites-available/mailman
a2ensite mailman
/etc/init.d/apache2 force-reload
Soweit, so leicht... Wenn gewünscht können in
/etc/mailman/apache.conf
noch Änderungen vorgenommen werden, aber
dann daran denken, dass diese erst bei einem Reload des Webservers
berücksichtigt werden. Und das wars auch schon:)
Quellen und weitere Infos
Auch ich hab meine Infos ja woher, und zwar unter anderem hier:
- https://help.ubuntu.com/community/Mailman
- http://gaiaes.com/content/configuring-mailman-ubuntu-postfix Hier kann man auch weitere Informationen erhalten, wenn man das Setting etwas verändern will.