Mailman auf einem ISPConfig3 Server einrichten


Autor: Alexander Fox alias PlaNet Fox

<howtoforge [at] planetfox.de [dot] de>

Created 29.06.09

Ich gebe keine Garantie für die Richtigkeit, dieser Anleitung. Ich habe mich in diesem HowTo einmal damit befasst den Maillinglistenmanager Mailman auf einem laufähigen ISP3Config System zu installieren und zu verwenden. Ich habe dies unter Debian Lenny getestet mit Erfolg. Mailman ist ein stark verbreitete freie Software zur Verwaltung von Diskussionen und Maillinglisten. Die Mailingliste kann am Schluss dieses Howtos auch über eine Webschnittstelle verwaltet werden.

1. Schritt Installation von Mailman

Um Mailman zu Installieren geben sie folgendendes als Root in die Console ein

apt-get install mailman


Nun wird mailman heruntergeladen, dann startet die Installlation und uns werden drei Fragen gestellt.


Wir müssen auswählen, welche Sprachen Mailman Unterstützen soll im normalfall sollte hier Deutsch und Englisch ausgewählt werden. Außer ihr benötigt mehr Sprachen.Danach Klickt auf Ok


Hier müsst ihr entscheiden welche Sprache generell als Standard benutzt werden soll für Mailman. weiter mit Ok


Hier nochmal die erklärung das ihr die Mailingliste mailman anlegen müsst,dies machen wir im anschluss noch.Nach dem die Installation fertig gestellt ist sollte folgendes zu sehen sein in der console

Entpacke mailman (aus .../mailman_1%3a2.1.11-11_i386.deb) ...
Verarbeite Trigger für man-db ...
Richte mailman ein (1:2.1.11-11) ...
Looking for enabled languages (this may take some time) ... done.
Installing site language en ............................................ done.
Configuring mailman for domain example.com ...
Update von Version 0x0 auf 0x2010bf0
lösche nicht mehr benötigte Quelldateien
Site list for mailman missing (looking for list named 'mailman'). (warning).
Please create it; until then, mailman will refuse to start. (warning).

Es sollten nun die Mailman Verzeichnisse vorhanden sein auf eurem Server und der user list und die Gruppe list

/usr/lib/mailman/
/usr/lib/cgi-bin/mailman/
/usr/share/doc/mailman/
/usr/log/mailman/
/var/lib/mailman/
/var/lock/mailman/
/var/run/mailman/
/etc/mailman/
/etc/init.d/
/usr/sbin/

2. Mailingliste erstellen Mailman

Nun erstellen wir die erste Maillinglisten mit dem namen mailman

newlist mailman


Danach werden euch noch fragen gestellt

E-Mailadresse des Listenverwalters: admin@example.de
Erstmaliges Passwort für die Liste mailman
Enter drücken, um den Besitzer der Liste mylist zu benachrichtigen...

Danach erscheint folgendes

To finish creating your mailing list, you must edit your /etc/aliases (or   equivalent) file by adding the following lines, and possibly running the   `newaliases' program:
## mailman mailing list

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"

Wir kopieren das ganze ab mailman: und fügen es in die /etc/aliases ein

vi /etc/aliases


Die Datei sollte nun folgenden Inhalt erhalten haben von euch

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"

Danach erzeugen wir die aliase neu mit folgendem befehl

newaliases


3. Postfix anpassen für Mailman

Nun rufen wir die main.cf auf um die Postfix Konfiguration für mailman anzupassen

vi /etc/postfix/main.cf


Wir überprüfen ob folgende Einträge vorhanden sind und ergänzen sie, um das ganze auch in ein paar Monaten noch nachvollziehn habe ich das folgendermaßen gemacht.

#Mailman

virtual_maps = hash:/var/lib/mailman/data/virtual-mailman

owner_request_special = no


Nun suchen wir in der main.conf folgenden Eintrag

alias_maps = hash:/etc/aliases


und ändern diesen ab, dies sollte nun so aussehn

alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases


Speichere nun die Datei ab und schließe sie.

4. Mailman Konfigurieren

Nun müssen wir noch Mailman Konfigurieren dies erfolgt über folgende Konfiguration

vi /etc/mailman/mm_cfg.py


Wir müssen noch folgendes der Konfiguration hinzufügen

POSTFIX_STYLE_VIRTUAL_DOMAINS = [' ']

MAT = 'Postfix'


Die Sprache ändern wir von Englisch in Deutsch

DEFAULT_SERVER_LANGUAGE = 'en'


ändern in

DEFAULT_SERVER_LANGUAGE = 'de'


Wir Speichern diese Datei und schließen

5. Apache2 Einstellung

Wir passen jetzt noch die Apache.conf an

vi /etc/apache2/apache.conf


am ende der Konfiguration ergänzen wir die apache.conf um folgende zeilen

Include ../mailman/apache.conf


Wir speichern die Datei ab

6. Prüfen der Berechtigungen

Wir überpüfen die Rechte mit folgendem befehl

check_perms


Sollten Fehler kommen könnt ihr diese mit folgendem befehl testen

check_perms -f


7. Dienste neu starten

Nun starten wir folgende die Dienste neu bzw mailman starten wir zum ersten mal

/etc/init.d/apache2 restart

/etc/init.d/postfix restart

/etc/init.d/mailman start


8. Die erste eigene Mailingliste anlegen

Eine eigene Maillingliste anlegen hier zBsp. die Mailingliste kathi

newlist kathi


Danach werden euch wieder wie oben drei fragen gestellt

E-Mailadresse des Listenverwalters: admin@example.de
Erstmaliges Passwort für die Liste kathi:
Enter drücken, um den Besitzer der Liste kathi zu benachrichtigen...

Nun solte der Administrator der Mailingliste eine Mail bekommen haben mit folgendem Inhalt

The mailing list `kathi' has just been created for you.
The following  is some basic information about your mailing list.
Your mailing list password is:

You need this password to configure your mailing list.
You also need  it to handle administrative requests,
such as approving mail if you  choose to run a moderated list.

You can configure your mailing list at the following web page:
http://example.de/cgi-bin/mailman/admin/kathi

The web page for users of your mailing list is:  http://example.de/cgi-bin/mailman/listinfo/kathi
You can even customize these web pages from the list configuration  page.
However, you do need to know HTML to be able to do this.
There is also an email-based interface for users (not administrators)  of your list;
you can get info about using it by sending a message  with just the word `help' as subject or in the body, to:
kathi-request@example.de    To unsubscribe a user: from the mailing list 'listinfo' web page,
click on or enter the user's email address as if you were that user.
Where that user would put in their password to unsubscribe, put in  your admin password.
You can also use your password to change  member's options, including digestification,
delivery disabling, etc.    Please address all questions to mailman-owner@example.de.

Die Mailinglistenseite sollte nun zu finden sein auf folgender seite

http://example.com/cgi-bin/mailman/listinfo/


Nun sollte dort folgendes im Browser angezeigt werden  oder so ähnlich


Wenn ihr auf das Archive zugreifen möchtet später einmal könnt ihr dies über folgende Adresse

http://example.de/pipermail/kathi/


Dieses Verzeichnis kann bei bedarf geschützt werden folgenddermaßen

Auch ist es sinnvoll eine robot.txt im root verzeichnis anzulegen mit folgendem Inhalt, um das auslesen durch google bots zu verhindern.

User-agent: *
Disallow: /mailman/create
Disallow: /mailman/admin
Disallow: /mailman/roster
Disallow: /mailman/options
Disallow: /pipermail

Der Parameter DEFAULT_ARCHIVE = Off in der mm_cfg.py sorgt dafür, dass neu angelegte Listen kein Webarchiv erhalten, wenn es der Administrator im Admin-Interface nicht ausdrücklich aktiviert. Ihr könnt natürlich den Scriptalias für apache in der datei /etc/mailman/apache.conf ausdokumentieren. Einfach die Zeile mit Pipermail suchen und eine raute davor setzen.

9. Links

http://www.mailman.de

http://www.gaos.org/moin/PiperMail
http://www.linux-magazin.de
http://home.subnet.at/~max/mail/mailman.php

Ich hoffe dieses Howto hilft nun dem ein oder anderen Mailinglisten aauf einem ISPConfig 3 Server zu betreiben.

3 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: Laubie

Ein paar kleine Fehler haben sich wohl eingeschlichen:
Unter Punkt 3 schreibst du von der main.conf - die heisst aber main.cf
Unter Punkt 4 ist die Syntax vom einzufügenen Text etwas falsch: MTA = 'Postfix' - bei copy-paste von dem Text gibts nen parse-error.
Unter Punkt 5 fehlt ne 2 im Dateinamen der apache2.conf

Grüße
Laubie


Von: Wh1sper

inf mail.err: open database /var/lib/mailman/data/aliases.db: No such file or directory
Abhilfe: in /etc/postfix/main.cf
die Änderung von alias_databaserückgängig gemacht.
also alias_database = hash:/etc/aliases
macht auch sinn, die alias.db liegt ja auch dort


Von: seraphim

worked on Debian Lenny + ISPConfig 3 with only a few problems:
The owner/group of the folders were wrong.
check_perms told me that there were some things wrong.
hint: to set a new owner and group to a symlink use
chown -h list:list /path/