- Mitglied seit
- 19. Aug 2008
- Beiträge
- 18.275
- Punkte für Reaktionen
- 4
- Punkte
- 0
Mailinglisten mit Mailman erstellen und verwalten
Mailman (die gute Doku dazu findet ihr hier) ist ein Python Program, das eine Schnittstelle der Mailinglisten zum Mailserver (SMTP) herstellt und überdies eine browserbasierte Verwaltung zur Verfügung stellt. Zwar kann man mit Postfix selber ganz einfach Mailinglisten erstellen.
und danach ein
Oder mit virtuellen Usern
und danach ein
Sowohl bei aliases als auch bei virtual am Schluss noch ein
Der Nachteil an beiden Versionen ist es, dass man keine Verwaltung der "Liste" hat. Zudem kann jeder der die Adresse der Liste kennt an diese schreiben, auch ohne eine vorherige Authentifizierung wie sie mailman zur Verfügung stellt
Mailman
Der Einbau von mailman ist relativ unkompliziert, trotzdem kann einiges schiefgehen. Man wird sich hier mit Systemfiles auseinandersetzen müssen was immer ein Risiko birgt. Also am besten zuerst von allen Files Sicherheitskopien machen.
Bei mir ist nix zu Bruch gegangen, trotzdem geht alles was ihr macht wie immer auf Eure eigene Kappe!!
Voraussetzungen
Damit das ganze fuzen kann müssen folgende Voraussetzungen erfüllt sein
Prüft zuerst ob bereits eine Python Version auf der DS installiert ist
Danach erstellt ihr am besten gleich den Benutzer und die Gruppe im DSM. Danach öffnet ihr die Datei /etc/passwd und tragt eine Login-Shell für den User ein.
Nun via telnet oder ssh auf die DS und in ein Verzeichnis für den Download von mailman wechseln. Ich habe mir dazu /volume1/tmp erstellt. Jetzt die das Archiv mit wget runterladen und entpacken z.B.
Danach noch die Rechte der neuen Daten ändern
Ab jetzt darf/sollte man nicht mehr root sein also ein
Alle folgenden Codes mit $ sind als dieser User auszuführen
Der zweiletzte Befehl gibt euch eine Liste von Alias Namen aus. Kopiert diese Liste in die Zwischenablage und für sie - jetzt wieder als root - in die entsprechende Alias Datei ein
Postfix patchen
Damit auch der Postfix mit den Maillisten arbeiten kann, müsst ihr an Postfix selber verschiedene Einstellungen machen. Zuerst definieren wir in der main.cf
und danach in /usr/syno/mailstation/etc/transport (die Datei falls nicht vorhanden anlegen)
Und anschliessend ein
Damit nun der Postfix weiss was er mit Emails an list.DOMAIN.tld anfangen soll gibt es sehr elegantes Python Script unter http://www.gurulabs.com/downloads/postfix-to-mailman-2.1.py. Speichert dieses Script z.B. ins Home von mailman und passt es entsprechend an.
Wichtig: Als Emailadresse keine @list.DOMAIN.tld angeben sondern nur z.B. postmaster@DOMAIN.tld
Danach öffnet ihr die Datei /usr/syno/mailstation/etc/master.cf und fügt unten
ein.
Wichtig:In der ersten Zeile müssen alle Abstände TABS sein. Die zweite Zeile muss mit einem Leerzeichen beginnen und darf nur Leerzeichen und KEINE TABS enthalten
Nach all diesen Anpassungen muss man noch folgenden Befehl ausführen
Danach meldet ihr Euch wieder als mailman an und startet den mailman-Maildienst
Jetzt sollte mailman eigentlich laufen und im Browser unter EURE_DOMAIN_ODER_SUB aufzurufen sein u.U. müsst ihr erstnoch den Webserver restarten
Gruss
tobi
Mailman (die gute Doku dazu findet ihr hier) ist ein Python Program, das eine Schnittstelle der Mailinglisten zum Mailserver (SMTP) herstellt und überdies eine browserbasierte Verwaltung zur Verfügung stellt. Zwar kann man mit Postfix selber ganz einfach Mailinglisten erstellen.
Code:
#/usr/syno/mailstation/etc/aliases
...
liste: alice@alice.tld bob@bob.tld eve@eve.tld
Code:
/usr/syno/mailstation/bin/newaliases
Code:
#/path/to/virtual
liste@domain.tld alice@alice.tld bob@bob.tld eve@eve.tld
Code:
/usr/syno/mailstation/sbin/postmap /path/to/virtual
Code:
/usr/syno/mailstation/postfix reload
Mailman
Der Einbau von mailman ist relativ unkompliziert, trotzdem kann einiges schiefgehen. Man wird sich hier mit Systemfiles auseinandersetzen müssen was immer ein Risiko birgt. Also am besten zuerst von allen Files Sicherheitskopien machen.
Bei mir ist nix zu Bruch gegangen, trotzdem geht alles was ihr macht wie immer auf Eure eigene Kappe!!
Voraussetzungen
Damit das ganze fuzen kann müssen folgende Voraussetzungen erfüllt sein
- Download der Sourcen von http://ftp.gnu.org/gnu/mailman/ (ich habe Version 2.1.12 verwendet)
- telnet Zugang oder ssh auf der DS aktiviert
- ipkg muss installiert sein und funktionieren
- python muss auf der DS installiert sein
- ein neuer Benutzer und Gruppe auf der DS (Benutzer muss eine Login Shell haben ggf in /etc/passwd anpassen). Im folgenden User:mailman und Gruppe:mailman
- ein ScripAlias von /mailman/ auf /volume1/homes/mailman/cgi-bin/ und ein Alias von /pipermail/ auf /volume1/homes/mailman/archives/public/ in der httpd.conf-user
Prüft zuerst ob bereits eine Python Version auf der DS installiert ist
Code:
which python
#und ggf installieren
ipkg install python26
Nun via telnet oder ssh auf die DS und in ein Verzeichnis für den Download von mailman wechseln. Ich habe mir dazu /volume1/tmp erstellt. Jetzt die das Archiv mit wget runterladen und entpacken z.B.
Code:
wget http://ftp.gnu.org/gnu/mailman/mailman-2.1.12.tgz
gunzip -c /volume1/tmp/mailman-2.1.12.tgz | tar xvf -
Code:
chown -R mailman:mailman /volume1/tmp/mailman-2.1.12
Code:
su mailman
Code:
$ cd /volume1/tmp/mailman-2.1.12
$ ./configure --prefix=/volume1/homes/mailman --with-username=mailman --with-groupname=mailman \
--with-mailhost=EUER_SMTP_SERVER --with-urlhost=EURE_DOMAIN_ODER_SUB
$ make
$ make install
# den folgenden Befehl hingegen wieder als root!!
/volume1/homes/mailman/bin/check_perms -f
$ /volume1/homes/mailman/bin/newlist mailman
$ /volume1/homes/mailman/bin/mmsitepass PASSWORT
Code:
nano -w /usr/syno/mailstation/etc/aliases
<<ALIASE HINEINKOPIEREN UND DATEI SPEICHERN>>
/usr/syno/mailstation/bin/newaliases
Damit auch der Postfix mit den Maillisten arbeiten kann, müsst ihr an Postfix selber verschiedene Einstellungen machen. Zuerst definieren wir in der main.cf
Code:
relay_hosts = list.DOMAIN.ltd
transport_maps = hash:/usr/syno/mailstation/etc/transport
mailman_destination_recipient_limit = 1
Code:
list.DOMAIN.tld mailman:
Code:
/usr/syno/mailstation/sbin/postmap /usr/syno/mailstation/etc/transport
Wichtig: Als Emailadresse keine @list.DOMAIN.tld angeben sondern nur z.B. postmaster@DOMAIN.tld
Danach öffnet ihr die Datei /usr/syno/mailstation/etc/master.cf und fügt unten
Code:
mailman unix - n n - - pipe
flags=FR user=mailman:mailman argv=/volume1/homes/mailman/postfix-to-mailman.py ${nexthop} ${user}
Wichtig:In der ersten Zeile müssen alle Abstände TABS sein. Die zweite Zeile muss mit einem Leerzeichen beginnen und darf nur Leerzeichen und KEINE TABS enthalten
Nach all diesen Anpassungen muss man noch folgenden Befehl ausführen
Code:
/usr/syno/mailstation/sbin/postfix reload
Code:
su mailman
$ /volume1/homes/mailman/bin/mailmanctl start
Code:
/usr/syno/etc.defaults/rc.d/S97apache-user.sh restart
tobi