Mailman Installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 49: Zeile 49:


Bei der Installation als Paketuser:
Bei der Installation als Paketuser:
       ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/users/listen \
       ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/users/listen/mailman \
               --with-username=XYZ00-listen \
               --with-username=XYZ00-listen \
               --with-groupname=XYZ00 \
               --with-groupname=XYZ00 \
Zeile 66: Zeile 66:
Sicherheitshalber die Dateirechte prüfen (und ggf. korrigieren) lassen:
Sicherheitshalber die Dateirechte prüfen (und ggf. korrigieren) lassen:


     
~/mailman-2.1.12$ cd ..     
xyz00@hopi:~$ ~/mailman/bin/check_perms -f
~$ mailman/bin/check_perms -f


== Konfiguration ==
== Konfiguration ==
Zeile 73: Zeile 73:
=== mm_cfg.py ===
=== mm_cfg.py ===


  ~/mailman/Mailman/mm_cfg.py editieren.
Konfigurationsdatei editieren:
 
  ~$ nano mailman/Mailman/mm_cfg.py
        
        
Folgendes könnte dort z.B. stehen:
Beispielkonfiguration für lists.example.com könnte so aussehen:


       ...
       ...
Zeile 82: Zeile 84:
       # -*- python -*-
       # -*- python -*-
   
   
       DEFAULT_HOST_NAME = 'www.example.com'
       DEFAULT_HOST_NAME = 'lists.example.com'
       DEFAULT_EMAIL_HOST = 'example.com'
       DEFAULT_EMAIL_HOST = 'example.com'
       DEFAULT_URL_HOST = 'www.example.com'
       DEFAULT_URL_HOST = 'lists.example.com'
       add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
       add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
   
   
       DEFAULT_SERVER_LANGUAGE = 'de'
       DEFAULT_SERVER_LANGUAGE = 'de'
      DEFAULT_URL_PATTERN = 'http://%s/'


In ~/mailman/Mailman/Defaults.py seht ihr, was man in mm_cfg.py alles einstellen kann.
In ~/mailman/Mailman/Defaults.py seht ihr, was man in mm_cfg.py alles einstellen kann.


=== CGIs kopieren (in alle Domain-Verzeichnisse, die Mailman haben sollen) ===
=== CGIs ===


  xyz00@hopi:~$ mkdir ~/doms/example.com/cgi/mailman
CGIs in alle Domain-Verzeichnisse linken, auf denen das Mailman Webfrontend laufen soll.
  xyz00@hopi:~$ cp ~/mailman/cgi-bin/* ~/doms/example.com/cgi/mailman
 
  xyz00@hopi:~$ chmod g-s ~/doms/example.com/cgi/mailman/*
Beispielsweise:
  ~$ ln -s mailman/cgi-bin doms/listen.example.com/cgi/mailman
 
Wenn die Domains bei anderen Usern liegen ggf. kopieren:
~$ mkdir ~/doms/lists.example.com/cgi/mailman
  ~$ cp mailman/cgi-bin/* ~/doms/listen.example.com/cgi/mailman
  ~$ chmod g-s ~/doms/example.com/cgi/mailman/*


=== .htaccess ===
=== .htaccess ===


Dafür sorgen, dass mailman unter /mailman statt /cgi-bin/mailman erreichbar ist. In ~/doms/example.com/subs/www/.htaccess folgendes eintragen:
Bei einer extra Mailman Domain dafür sorgen, dass Mailman auch unter lists.example.com statt unter lists.example.com/cgi-bin/mailman erreichbar ist. In ~/doms/lists.example.com/htdocs/.htaccess folgendes eintragen:
 
      RewriteEngine On
      RewriteRule ^(.*)$      /cgi-bin/mailman/$1
 
Wenn Mailman unter der www Domain laufen soll und unter www.example.com/mailman statt www.example.com/cgi-bin/mailman erreichbar sein soll, hilft folgendes in ~/doms/example.com/subs/www/.htaccess:


       RewriteEngine On
       RewriteEngine On
       RewriteRule ^mailman/(.*)$      /cgi-bin/mailman/$1
       RewriteRule ^mailman/(.*)$      /cgi-bin/mailman/$1


===  Icons kopieren/verlinken ===
===  Icons kopieren/verlinken ===

Version vom 25. Juni 2009, 22:03 Uhr


Diese Seite muss überarbeitet werden

Diese Seite wurde als Baustelle gekennzeichnet, weil sie überarbeitet werden muss. Eine Begründung dafür findest du auf der Diskussionsseite. Bitte hilf mit, diese Seite zu verbessern!

Mailman

Installation

Installationsanleitung für Mailman als Paketadmin
(zuletzt getestet mit mailman-2.1.12)

Vielen Dank an aller Benutzer die Verbesserungen beisteuern!

Bei der hier dokumentierten Installation als Paketadmin haben alle Paketuser Zugriff auf die Mailman Daten.

Zur Separation von Paketadminrechten und anderen Paketusern ist es vorzuziehen Mailman in einem Paketuser Account (zentral) zu installieren. Dafür werden z.B. einem separaten xyz00-listen User eine oder mehrere lists.*.* Subdomains aufgeschaltet.

(Mailman könnte mit Hilfe von Email-Adressen, die auf +Adressen gemappt werden und eine procmail Filterung (http://pm-doc.sourceforge.net/pm-tips.html#using_plus_addressing_foobar) die die Emails entsprechend mailman zuführt, ganz innerhalb der Rechte eines Users realisiert werden.)


Sourcen besorgen und entpacken

Unter http://www.gnu.org/software/mailman/ die aktuelle Software besorgen.

~$ tar -xzvf mailman-2.1.12.tgz

Log-Verzeichnis anlegen

Bei der Installation als Paketadmin:

~$ mkdir var/mailman
~$ chmod 02775 var/mailman

Bei der Installation als Paketuser:

~$ mkdir -p mailman/var
~$ chmod 02775 mailman/var

Kompilieren

braucht einige Optionen, die anzupassen sind.

~$ cd mailman-2.1.12

Bei der Installation als Paketadmin:

     ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/mailman \
             --with-username=XYZ00 \
             --with-groupname=XYZ00 \
             --with-var-prefix=/home/pacs/XYZ00/var/mailman \
             --with-cgi-gid=XYZ00 \
             --with-mail-gid=nogroup

(die \ bedeuten, dass alles in eine Zeile gehört, bzw. die Returns nicht interpretiert werden sollen.)


Bei der Installation als Paketuser:

     ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/users/listen/mailman \
             --with-username=XYZ00-listen \
             --with-groupname=XYZ00 \
             --with-var-prefix=/home/pacs/XYZ00/users/listen/mailman/var \
             --with-cgi-gid=XYZ00 \
             --with-mail-gid=nogroup

Anschließend:

~/mailman-2.1.12$ make
~/mailman-2.1.12$ make install


Datenrechte prüfen

Sicherheitshalber die Dateirechte prüfen (und ggf. korrigieren) lassen:

~/mailman-2.1.12$ cd ..      
~$ mailman/bin/check_perms -f

Konfiguration

mm_cfg.py

Konfigurationsdatei editieren:

~$ nano mailman/Mailman/mm_cfg.py
     

Beispielkonfiguration für lists.example.com könnte so aussehen:

     ...
     ##################################################
     # Put YOUR site-specific settings below this line.
     # -*- python -*-

     DEFAULT_HOST_NAME = 'lists.example.com'
     DEFAULT_EMAIL_HOST = 'example.com'
     DEFAULT_URL_HOST = 'lists.example.com'
     add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)

     DEFAULT_SERVER_LANGUAGE = 'de'
     DEFAULT_URL_PATTERN = 'http://%s/'

In ~/mailman/Mailman/Defaults.py seht ihr, was man in mm_cfg.py alles einstellen kann.

CGIs

CGIs in alle Domain-Verzeichnisse linken, auf denen das Mailman Webfrontend laufen soll.

Beispielsweise:

~$ ln -s mailman/cgi-bin doms/listen.example.com/cgi/mailman

Wenn die Domains bei anderen Usern liegen ggf. kopieren:

~$ mkdir ~/doms/lists.example.com/cgi/mailman
~$ cp mailman/cgi-bin/* ~/doms/listen.example.com/cgi/mailman
~$ chmod g-s ~/doms/example.com/cgi/mailman/*

.htaccess

Bei einer extra Mailman Domain dafür sorgen, dass Mailman auch unter lists.example.com statt unter lists.example.com/cgi-bin/mailman erreichbar ist. In ~/doms/lists.example.com/htdocs/.htaccess folgendes eintragen:

     RewriteEngine On
     RewriteRule ^(.*)$      /cgi-bin/mailman/$1

Wenn Mailman unter der www Domain laufen soll und unter www.example.com/mailman statt www.example.com/cgi-bin/mailman erreichbar sein soll, hilft folgendes in ~/doms/example.com/subs/www/.htaccess:

     RewriteEngine On
     RewriteRule ^mailman/(.*)$      /cgi-bin/mailman/$1


Icons kopieren/verlinken

xyz00@hopi:~$ cp -R ~/mailman/icons ~/doms/example.com/subs/www

oder symlinken (spart ein klein wenig Platz)

xyz00@hopi:~$ ln -s ~/mailman/icons ~/doms/example.com/subs/www

Passwort setzen

xyz00@hopi:~$ ~/mailman/bin/mmsitepass

Mailinglisten

Die "mailman site list" Einrichten

Die "site list" mit dem Namen "mailman" ist die Mailingliste der lokalen Mailman Administratoren und wird zur einwandfreien Funktion von Mailman benötigt. Einrichten und die Standard Konfigurationsvorgaben dafür laden:

xyz00@hopi:~$ ~/mailman/bin/newlist mailman
Enter the email of the person running the list: admin@xyz00.hostsharing.net
Initial mailman password:
xyz00@hopi:~$ ~/mailman/bin/config_list -i ~/var/mailman/data/sitelist.cfg mailman

~/etc/ virtusertable

In die virtusertable müssen nun die Adressen mittels hsadmin CLI eingerichtet werden.

Beispiel:

hsadmin -c emailaddress.add -s localpart=mailman -s domain=domain.de -s 'target=XYZ00-mailman'
hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=domain.de -s 'target=XYZ00-mailman-admin'
hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=domain.de -s 'target=XYZ00-mailman-bounces'
hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=domain.de -s 'target=XYZ00-mailman-confirm'
hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=domain.de -s 'target=XYZ00-mailman-join'
hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=domain.de -s 'target=XYZ00-mailman-leave'
hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=domain.de -s 'target=XYZ00-mailman-owner'
hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=domain.de -s 'target=XYZ00-mailman-request'
hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=domain.de -s 'target=XYZ00-mailman-subscribe'
hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=domain.de -s 'target=XYZ00-mailman-unsubscribe'


Hinweis: Die e-Mail Adressen und die Targets, welche noch in den Aliasen definiert werden müssen, können von Domain und Mailingliste unterschiedlich sein bzw. müssen bei mehreren identische Listen unterschiedlich sein!


~/etc/aliases

Die oben zu den Mail-Adressen angegebenen Aliase müssen im nächsten Schritt ebenfalls mit hsadmin CLI erstellt werden:

Beispiel:

hsadmin -c emailalias.add -s name='XYZ00-mailman' -s 'target="|/home/pacs/XYZ00/mailman/mail/mailman post mailman"'
hsadmin -c emailalias.add -s name='XYZ00-mailman-admin' -s 'target="|/home/pacs/XYZ00/mailman/mail/mailman admin mailman"'
hsadmin -c emailalias.add -s name='XYZ00-mailman-bounces' -s 'target="|/home/pacs/XYZ00/mailman/mail/mailman bounces mailman"'
hsadmin -c emailalias.add -s name='XYZ00-mailman-confirm' -s 'target="|/home/pacs/XYZ00/mailman/mail/mailman confirm mailman"'
hsadmin -c emailalias.add -s name='XYZ00-mailman-join' -s 'target="|/home/pacs/XYZ00/mailman/mail/mailman join mailman"'
hsadmin -c emailalias.add -s name='XYZ00-mailman-leave' -s 'target="|/home/pacs/XYZ00/mailman/mail/mailman leave mailman"'
hsadmin -c emailalias.add -s name='XYZ00-mailman-owner' -s 'target="|/home/pacs/XYZ00/mailman/mail/mailman owner mailman"'
hsadmin -c emailalias.add -s name='XYZ00-mailman-request' -s 'target="|/home/pacs/XYZ00/mailman/mail/mailman request mailman"'
hsadmin -c emailalias.add -s name='XYZ00-mailman-subscribe' -s 'target="|/home/pacs/XYZ00/mailman/mail/mailman subscribe mailman"'
hsadmin -c emailalias.add -s name='XYZ00-mailman-unsubscribe' -s 'target="|/home/pacs/XYZ00/mailman/mail/mailman unsubscribe mailman"'

Hinweis: Die Aliase und die Targets können von Domain und Mailingliste unterschiedlich sein bzw. müssen bei mehreren identische Listen unterschiedlich sein! Des Weiteren ist der Pfad zur Mailman Installation anzupassen.

Crontab

In die Crontab wird z.B. eingetragen:

* * * * *	~/mailman/bin/qrunner -o -r All
0 * * * *	rm -f ~/var/mailman/logs/qrunner

Dies übernimmt die Funktion des qrunner-Dämons, der bei Mailman 2.1.1 normalerweise laufen würde. Das Logfile wird gelöscht, da es sonst sehr schnell sehr groß wird. Zusätzlich müssen noch die Cronjobs in ~/mailman/cron/crontab.in angelegt werden.


Administriert wird die Liste nun über http://www.example.com/mailman/admin/<listenname> und entweder dem Listenpasswort oder dem Site-Passwort. Als erstes sollte man die Liste "mailman" selbst abbonieren.

Bis auf das Anwenden der sitelist.cfg können auch alle anderen Listen nach diesem Schema angelegt werden, oder über das Webinterface.


Das war's. Mailman ist jetzt fertig installiert und müsste sogar funktionieren ;)

Feintuning

Wer will, kann auch noch etwas Platz sparen, da die normale Mailmaninstallation mit über 20 MB zu Buche schlägt...

Mit den folgenden Tips kann man das auf ca. 6 MB reduzieren :)

Es kann natürlich sein, dass ich zuviel lösche, aber bei mir funktioniert's. Wenn ihr also sicher(er) sein wollt, dass euch der Mailman nicht um die Ohren fliegt, macht das nicht!.

  • ~/mailman/cgi-bin und ~/mailman/icons können gelöscht werden, da sie ja an anderer Stelle noch vorhanden sind.
  • In ~/mailman/messages die nicht benötigten Sprachen löschen (bis auf englisch).
  • In ~/mailman/templates die nicht benötigten Sprachen löschen (bis auf englisch).
  • ~/mailman/tests kann, soweit ich das sehe, komplett gelöscht werden.
  • Falls man koreanisch und japanisch nicht braucht, kann man folgendes machen:
  • In ~/mailman/bin/paths.py, ~/mailman/cron/paths.py und ~/mailman/scripts/paths.py die Zeilen:
# In a normal interactive Python environment, the japanese.pth and korean.pth
# files would be imported automatically. But because we inhibit the importing
# of the site module, we need to be explicit about importing these codecs.
 import japanese
 # As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean
 # codecs installed, however leave the first import in there in case an upgrade
 # changes this.
 import korean
 import korean.aliases

auskommentieren.

Dann kann man ~/mailman/pythonlib/japanese, ~/mailman/pythonlib/korean, ~/mailman/pythonlib/korean.pth sowie ~/mailman/pythonlib/lib löschen.

Man kann auch noch die Debug-Informationen aus den binaries strippen:

     strip ~/mailman/mail/mailman
     strip ~/mailman/cgi-bin/*
     strip ~/doms/example.com /cgi/mailman/*

Multidomainfähigkeit

Man kann seit Mailman 2.x eine Mailman-Installation unter gewissen Einschränkungen für mehrere Domains verwenden. Hier soll kurz gezeigt werden, was geht und wie es geht.

Anleitung

Als erstes ist wichtig, dass ihr Mailman sagt, für welche Domains Mailinglisten verwaltet werden sollen. Dies tut ihr in der Datei ~/mailman/Mailman/mm_cfg.py:

DEFAULT_EMAIL_HOST = 'example.com'
DEFAULT_URL_HOST = 'www.example.com'
add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST)
add_virtualhost('www.zoopnet.de', 'zoopnet.de')

Das bedeutet, dass Mailman per default davon ausgeht, dass alle Listen für die Domain example.com sind. Die add_virtualhost-Direktiven ordnen einem Hostnamen für das Webfrontend (z.B. www.zoopnet.de) einen Hostpart für die Adresse der Mailinglisten (z.B. zoopnet.de) zu.

Tip von Raimund Specht: Lässt man den zweiten Parameter weg, also schreibt z.B. add_virtualhost('www.zoopnet.de'), dann benutzt Mailman als Hostpart alles was nach dem ersten Punkt steht, im Beispiel also zoopnet.de

Dann muss man logischerweise das Webfrontend mehrmals installieren.

Wenn man nun Mailinglisten mit newlist neu anlegt, muss man den Hostnamen für das Webfontend mit angeben, und zwar so:

~/mailman/bin/newlist listenname@www.example.com

Es ist wichtig, dass in der mm_cfg.py eine entsprechende add_virtualhost-Direktive für www.example.com steht, die der Frontend-URL einen Host-Part für die Mailadressen zuordnet. Ist eine solche Direktive nicht vorhanden, so wird www.example.com sowohl als URL für das Webfrontend wie auch als Hostpart für Emailadressen verwenet.


Prinzipiell war's das. Man muss die Listeneinträge natürlich immer in die richtige virtusertable eintragen :)

Probleme

Verschiedene Listen mit gleichem Namen (also z.B. liste@example1.com und liste@example2.com) sind mit Mailman 2.1 leider nicht möglich.


Tips und Tricks

Listen werden nach Webadressen/Host-Namen Aktualisierung nicht mehr im Web-Interface angezeigt.

Um den Listen den neuen Host-Namen zuzuordnen, kann im /bin Verzeichnis der Mailman Installation der Befehl

./withlist -l -r fix_url <Listen_Name> -v -u <Neue_Url>

genutzt werden. <Listen_Name> - Mailingliste welche bearbeitet werden soll. <Neue_Url> - Neue URL/Webadresse des Webinterfaces.


Weitere Cron-Jobs zur Mailinglisten Verwaltung

Folgende Cronjobs helfen bei der Verwaltung und sind User freundlich:

< In Arbeit >

Referenzen

Lösung zur installation als Domainadmin statt Paketadmin: https://lists.hostsharing.net/archiv/support/2009-June/019414.html

ältere Anleitung für Installation als Dom-Admin: <http://lists.hostsharing.net/archiv/support/2005-January/012426.html>


Laufenlassen mit event: Download und Doku auf <http://al000.hostsharing.net/mailman/mmhs/>

Die "Mutter der Mailman-Installations-Doku" <http://al000.hostsharing.net/mailman/>


"kleinen Tools" auf http://hs.andreasloesch.de, wobei das 'pac-mm-install' wahrscheinlich nicht aktuell (genug) ist