<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Daz00-daniel</id>
	<title>Hostsharing Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Daz00-daniel"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Daz00-daniel"/>
	<updated>2026-04-25T20:09:27Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Diskussion:Mailman_Installieren&amp;diff=2013</id>
		<title>Diskussion:Mailman Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Diskussion:Mailman_Installieren&amp;diff=2013"/>
		<updated>2009-10-06T11:33:16Z</updated>

		<summary type="html">&lt;p&gt;Daz00-daniel: Antwort hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sehr schön; sauberer gegliedert als die Vorversion. &lt;br /&gt;
&lt;br /&gt;
Ein paar Vorschläge dennoch:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mailman kann als Paketadmin oder Paketuser installiert werden.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Paket-Admin&amp;quot;, &amp;quot;Paketadmin&amp;quot;: Ich wäre dafür, wir würden überall im Wiki die Schreibweise &amp;quot;Paket-Admin&amp;quot; verwenden. Einfach als konservativer Umgang mit Wortschöpfungen. Andere Meinungen?&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Paketuser&amp;quot; ist auf der Seite [[User-Arten]] nicht definiert. Sollte es hier wohl &amp;quot;Domain-Admin&amp;quot; heißen?&lt;br /&gt;
&lt;br /&gt;
* Syntax: Strenggenommen kann Mailman nur als Softwareprogramm installiert werden, nicht als Paket-Admin oder als Domain-Admin. Alternativer Satzbau: &amp;quot;Mailman kann vom Paket-Admin oder von einem Domain-Admin installiert werden.&amp;quot; Oder: &amp;quot;Mailman kann man als Paket-Admin oder als Domain-Admin installiert werden.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Verzeichnisstruktur ==&lt;br /&gt;
&lt;br /&gt;
Als Verzeichnisname fuer die Mailman Installation wird in der Anleitung teilweise &amp;quot;mailman&amp;quot; und teilweise &amp;quot;mailman-2.1.12&amp;quot; verwendet. Ist das beabsichtigt? Bin mir nicht sicher, aber ich vermute, dass es einheitlich &amp;quot;mailman-2.1.12&amp;quot; heissen sollte. Z.B.&lt;br /&gt;
&lt;br /&gt;
      ~$ mkdir -p mailman-2.1.12/var&lt;br /&gt;
      ~$ chmod 02775 mailman-2.1.12/var&lt;br /&gt;
&lt;br /&gt;
statt:&lt;br /&gt;
      ~$ mkdir -p mailman/var&lt;br /&gt;
      ~$ chmod 02775 mailman/var&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
oder:&lt;br /&gt;
&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/mailman-2.1.12 \&lt;br /&gt;
        --with-username=XYZ00 \&lt;br /&gt;
        --with-groupname=XYZ00 \&lt;br /&gt;
        --with-var-prefix=/home/pacs/XYZ00/var/mailman-2.1.12 \&lt;br /&gt;
        --with-cgi-gid=XYZ00 \&lt;br /&gt;
        --with-mail-gid=nogroup&lt;br /&gt;
&lt;br /&gt;
satt:&lt;br /&gt;
&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/mailman \&lt;br /&gt;
        --with-username=XYZ00 \&lt;br /&gt;
        --with-groupname=XYZ00 \&lt;br /&gt;
        --with-var-prefix=/home/pacs/XYZ00/var/mailman \&lt;br /&gt;
        --with-cgi-gid=XYZ00 \&lt;br /&gt;
        --with-mail-gid=nogroup&lt;br /&gt;
&lt;br /&gt;
: Nein, das ist Absicht. Unter &amp;quot;mailman-2.1.12&amp;quot; liegen die entpackten Sourcen, wohingegen nach &amp;quot;mailman&amp;quot; installiert wird. --[[Benutzer:Daz00-daniel|Daz00-daniel]] 13:33, 6. Okt. 2009 (CEST)&lt;/div&gt;</summary>
		<author><name>Daz00-daniel</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2012</id>
		<title>Mailman Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2012"/>
		<updated>2009-10-06T11:30:08Z</updated>

		<summary type="html">&lt;p&gt;Daz00-daniel: /* Referenzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Was noch jemand ergänzen müsste:&lt;br /&gt;
* Eine generische virtuser/alias Konfiguration finden und dokumentieren. &amp;lt;br&amp;gt;&lt;br /&gt;
http://listes.rezo.net/how.php&amp;lt;br&amp;gt; http://www.gnu.org/software/mailman/mailman-install/mail-server.html&lt;br /&gt;
&lt;br /&gt;
* Skriptautomatisierung updaten &amp;lt;br&amp;gt; http://hs.andreasloesch.de/pac-mm-install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation == &lt;br /&gt;
&lt;br /&gt;
Installationsanleitung von Mailman&amp;lt;br&amp;gt;&lt;br /&gt;
(zuletzt getestet mit mailman-2.1.12 in eigenem Paketuser)&lt;br /&gt;
&lt;br /&gt;
Vielen Dank an alle Benutzer die Verbesserungen beisteuern!&lt;br /&gt;
&lt;br /&gt;
Mailman kann als Paketadmin oder Paketuser installiert werden. Wenn er als Paketadmin installiert wird haben jedoch ausnahmslos alle Paketuser direkten Zugriff auf die Mailman Daten, und bei Sicherheitslücken in Mailman könnten potentiell Paketadminrechte übernommen werden.&lt;br /&gt;
&lt;br /&gt;
Zur Separation von Paketadminrechten und anderen Paketusern ist es vorzuziehen Mailman in einem Paketuser  Account zu installieren. (Bspw. xyz00-listen) Und diesem separaten User ggf mehrere lists.*.* Subdomains aufzuschalten.&lt;br /&gt;
&lt;br /&gt;
Vorteil der Installation als Paketuser ist, dass nur dieser direkten Zugriff auf die Mailmandaten hat und mailman ohne Paketadminrechte läuft. Während der Emailauslieferung werden (wie immer bei .forward) die Rechte des Zielusers angenommen. (So läuft das auch bei procmail.)&lt;br /&gt;
&lt;br /&gt;
Nachteil der Installation als Paketuser ist lediglich, dass bisher so nicht die Paketdomain mit dem SSL Zertifikat von Hostsharing genutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Sourcen besorgen und entpacken ===&lt;br /&gt;
&lt;br /&gt;
Unter http://www.gnu.org/software/mailman/ die aktuelle Software besorgen.&lt;br /&gt;
&lt;br /&gt;
 ~$ tar -xzvf mailman-2.1.12.tgz&lt;br /&gt;
&lt;br /&gt;
=== Log-Verzeichnis anlegen ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
 ~$ mkdir -p mailman/var&lt;br /&gt;
 ~$ chmod 02775 mailman/var&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mkdir var/mailman&lt;br /&gt;
 ~$ chmod 02775 var/mailman&lt;br /&gt;
&lt;br /&gt;
=== Kompilieren ===&lt;br /&gt;
&lt;br /&gt;
Braucht einige Optionen, die anzupassen sind.&lt;br /&gt;
&lt;br /&gt;
 ~$ cd mailman-2.1.12&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/users/listen/mailman \&lt;br /&gt;
              --with-username=XYZ00-listen \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/users/listen/mailman/var \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=XYZ00&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/mailman \&lt;br /&gt;
              --with-username=XYZ00 \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/var/mailman \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=nogroup&lt;br /&gt;
(die \ bedeuten, dass alles in eine Zeile gehört, bzw. die Returns nicht interpretiert werden sollen.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ make&lt;br /&gt;
 ~/mailman-2.1.12$ make install&lt;br /&gt;
&lt;br /&gt;
=== Datenrechte prüfen ===&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber die Dateirechte prüfen (und ggf. korrigieren) lassen:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ cd ..      &lt;br /&gt;
 ~$ mailman/bin/check_perms -f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== mm_cfg.py ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei editieren:&lt;br /&gt;
&lt;br /&gt;
 ~$ nano mailman/Mailman/mm_cfg.py&lt;br /&gt;
      &lt;br /&gt;
Eine Beispielkonfiguration für lists.example.com könnte so aussehen:&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
      ##################################################&lt;br /&gt;
      # Put YOUR site-specific settings below this line.&lt;br /&gt;
      # -*- python -*-&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_HOST_NAME = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_URL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_SERVER_LANGUAGE = &#039;de&#039;&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_URL_PATTERN = &#039;http://%s/&#039;&lt;br /&gt;
&lt;br /&gt;
In ~/mailman/Mailman/Defaults.py seht ihr, was man in mm_cfg.py alles einstellen kann.&lt;br /&gt;
&lt;br /&gt;
=== CGIs in die Domains ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser: Die CGIs müssen in das jeweilige Domain-Verzeichnis, auf denen das Mailman Webfrontend laufen soll, kopiert werden. Ein Verlinken ist nicht möglich. Zusätzlich muss das sticky-Flag entfernt werden.&lt;br /&gt;
&lt;br /&gt;
 ~$ mkdir ~/doms/lists.example.com/cgi/mailman&lt;br /&gt;
 ~$ cp mailman/cgi-bin/* doms/lists.example.com/cgi/mailman/&lt;br /&gt;
 ~$ chmod g-s ~/doms/lists.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin: CGIs in alle Domain-Verzeichnisse linken, auf denen das Mailman Webfrontend laufen soll. &lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/lists.example.com/cgi&lt;br /&gt;
 ~/doms/lists.example.com/cgi$ ln -s ../../../mailman/cgi-bin mailman&lt;br /&gt;
&lt;br /&gt;
===  Icons in die Domains ===&lt;br /&gt;
&lt;br /&gt;
Die Icons können wahlweise verlinkt oder kopiert werden.&lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/lists.example.com/htdocs&lt;br /&gt;
 ~/doms/lists.example.com/htdocs$ ln -s ../../../mailman/icons&lt;br /&gt;
&lt;br /&gt;
oder kopieren&lt;br /&gt;
&lt;br /&gt;
 ~$ cp -R mailman/icons doms/lists.example.com/htdocs/&lt;br /&gt;
&lt;br /&gt;
=== .htaccess ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
In ~/doms/lists.example.com/htdocs/.htaccess folgendes eintragen (bitte RewriteCond für Icons beachten; ohne wird der Pfad für diese auch gemappt, was nicht korrekt ist):&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond	%{REQUEST_URI}		!^/icons/&lt;br /&gt;
 RewriteRule	^(.*)$			/cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule	^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Mailman z.B. auf der www Domain läuft und unter www.example.com/mailman statt www.example.com/cgi-bin/mailman erreichbar sein soll, hilft folgendes in der ~/doms/example.com/subs/www/.htaccess:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteRule    ^mailman/(.*)$          /cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule    ^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
(Die DEFAULT_URL_PATTERN Zeile in der mm_cfg.py kann für diesen Fall einfach auskommentiert werden.)&lt;br /&gt;
&lt;br /&gt;
=== Passwort setzen ===&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/mmsitepass&lt;br /&gt;
&lt;br /&gt;
=== Cronjobs einrichten ===&lt;br /&gt;
&lt;br /&gt;
In die [[Cron |Crontab]] wird z.B. eingetragen:&lt;br /&gt;
&lt;br /&gt;
 * * * * *	~/mailman/bin/qrunner -o -r All&lt;br /&gt;
 47 * * * *	rm -f ~/var/mailman/logs/qrunner&lt;br /&gt;
(Queuebearbeitung alle Minute, löschen der Verarbeitungslogs in der 47ten Minute jeder Std.)&lt;br /&gt;
&lt;br /&gt;
Dies übernimmt die Funktion des qrunner-Dämons, der bei Mailman normalerweise laufen würde.&lt;br /&gt;
Das Logfile wird gelöscht, da es sonst sehr schnell sehr groß wird.&lt;br /&gt;
&lt;br /&gt;
Zudem müssen noch die Cronjobs aus ~/mailman/cron/crontab.in eingefügt werden. &lt;br /&gt;
&lt;br /&gt;
 crontab -l &amp;gt; mycronjobs.tmp&lt;br /&gt;
 cat ~/mailman/cron/crontab.in &amp;gt;&amp;gt; mycronjobs.tmp&lt;br /&gt;
 crontab mycronjobs.tmp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mailinglisten einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== Als erste Liste die &amp;quot;mailman&amp;quot; &amp;quot;site list&amp;quot; Einrichten ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;site list&amp;quot; mit dem Namen &amp;quot;mailman&amp;quot; ist die Mailingliste der lokalen Mailman Administratoren. Sie wird zur einwandfreien Funktion von Mailman benötigt.&lt;br /&gt;
&lt;br /&gt;
Neue Liste anlegen:&lt;br /&gt;
 ~$ mailman/bin/newlist mailman&lt;br /&gt;
 Enter the email of the person running the list: admin@xyz00.hostsharing.net&lt;br /&gt;
 Initial mailman password:&lt;br /&gt;
&lt;br /&gt;
Nur für die &amp;quot;mailman site list&amp;quot;: Konfigurationsvorgaben laden.&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/mailman/var/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/var/mailman/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
(Diese Konfigurationsdatei nicht auf eigene Listen anwenden.)&lt;br /&gt;
&lt;br /&gt;
=== Email Adressen einrichten === &lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser erfolgt die Einrichtung der Emailadressen per hsadmin (virtusertable) und .forward Dateien.&lt;br /&gt;
Anlegen mittels [[hsadmin|hsadmin CLI]].&lt;br /&gt;
&lt;br /&gt;
Beispiel für lists.example.com und Paketuser XYZ00-listen.&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
Im Homeverzeichnis des Users XYZ00-listen werden anschließend entsprechende .forward-Dateien angelegt.&lt;br /&gt;
&lt;br /&gt;
B) .forward Dateien:&lt;br /&gt;
 echo &#039;admin@XYZ00.hostsharing.net&#039; &amp;gt; .forward # Weiterleitung von cron Fehlern etc an Paketadmin.&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman post mailman&amp;quot;&#039; &amp;gt; .forward+mailman&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman admin mailman&amp;quot;&#039; &amp;gt; .forward+mailman-admin&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman bounces mailman&amp;quot;&#039; &amp;gt; .forward+mailman-bounces&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman confirm mailman&amp;quot;&#039; &amp;gt; .forward+mailman-confirm&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman join mailman&amp;quot;&#039; &amp;gt; .forward+mailman-join&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman leave mailman&amp;quot;&#039; &amp;gt; .forward+mailman-leave&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman owner mailman&amp;quot;&#039; &amp;gt; .forward+mailman-owner&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman request mailman&amp;quot;&#039; &amp;gt; .forward+mailman-request&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman subscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-subscribe&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-unsubscribe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin XYZ00 erfolgt die Einrichtung hingegen per hsadmin (virtusertable) und hsadmin (aliases) so:&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Die bei den Mail-Adressen oben angegebenen Aliase werden mit [[hsadmin|hsadmin CLI]] angelegt.&lt;br /&gt;
&lt;br /&gt;
B) aliase:&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman post mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-admin&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman admin mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-bounces&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman bounces mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-confirm&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman confirm mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-join&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman join mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-leave&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman leave mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-owner&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman owner mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-request&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman request mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-subscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman subscribe mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-unsubscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
&lt;br /&gt;
Administriert werden Listen über http://lists.example.com/admin/&amp;lt;listenname&amp;gt; und entweder dem Listenpasswort oder dem Site-Passwort.&lt;br /&gt;
&lt;br /&gt;
Als erstes sollte man die Liste &amp;quot;mailman&amp;quot; selber abbonieren. (http://lists.example.com/admin/mailman)&lt;br /&gt;
&lt;br /&gt;
Bis auf das Anwenden der sitelist.cfg werden auch alle weiteren Listen nach obigem Schema angelegt, oder (bis auf das anlegen der virtusertable Einträge und aliase) über das Mailman Webinterface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war&#039;s. Mailman ist jetzt fertig installiert und müsste sogar funktionieren ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Feintuning == &lt;br /&gt;
&lt;br /&gt;
Wer will, kann auch noch etwas Platz sparen. Die normale Mailmaninstallation schlägt mit über 20 MB zu Buche...&lt;br /&gt;
&lt;br /&gt;
Mit den folgenden Tips kann man das auf ca. 6 MB reduzieren :)&lt;br /&gt;
&lt;br /&gt;
Es kann natürlich sein, dass ich zuviel lösche, aber bei mir funktioniert&#039;s. Wenn ihr also sicher(er) sein wollt, dass euch der Mailman nicht um die Ohren fliegt, macht das nicht!&lt;br /&gt;
&lt;br /&gt;
*  ~/mailman/cgi-bin und ~/mailman/icons können gelöscht werden, falls sie an andere Stelle kopiert worden sind.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/messages löschen.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/templates löschen (bis auf englisch).&lt;br /&gt;
* ~/mailman/tests kann, soweit ich das sehe, komplett gelöscht werden.&lt;br /&gt;
* Falls man koreanisch und japanisch nicht braucht, kann man folgendes machen:&lt;br /&gt;
* in ~/mailman/bin/paths.py, ~/mailman/cron/paths.py und ~/mailman/scripts/paths.py die Zeilen:&lt;br /&gt;
&lt;br /&gt;
 # In a normal interactive Python environment, the japanese.pth and korean.pth&lt;br /&gt;
 # files would be imported automatically.  But because we inhibit the importing&lt;br /&gt;
 # of the site module, we need to be explicit about importing these codecs.&lt;br /&gt;
 if not jaok:&lt;br /&gt;
     import japanese&lt;br /&gt;
 # As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean&lt;br /&gt;
 # codecs installed, however leave the first import in there in case an upgrade&lt;br /&gt;
 # changes this.&lt;br /&gt;
 if not kook:&lt;br /&gt;
     import korean&lt;br /&gt;
     import korean.aliases&lt;br /&gt;
&lt;br /&gt;
auskommentieren.&lt;br /&gt;
&lt;br /&gt;
Dann kann man ~/mailman/pythonlib/japanese, ~/mailman/pythonlib/korean, ~/mailman/pythonlib/korean.pth sowie ~/mailman/pythonlib/lib löschen.&lt;br /&gt;
   &lt;br /&gt;
Man kann auch noch die Debug-Informationen aus den binaries strippen:&lt;br /&gt;
&lt;br /&gt;
 strip ~/mailman/mail/mailman&lt;br /&gt;
 strip ~/mailman/cgi-bin/*&lt;br /&gt;
&lt;br /&gt;
Falls die CGIs nicht gesymlinkt wurden:&lt;br /&gt;
&lt;br /&gt;
 strip ~/doms/lists.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
== Multidomainfähigkeit ==&lt;br /&gt;
&lt;br /&gt;
Seit Mailman 2.x kann eine Mailman-Installation unter gewissen Einschränkungen für mehrere Domains verwendet werden. Hier soll kurz gezeigt werden, was geht und wie es geht.&lt;br /&gt;
&lt;br /&gt;
=== Anleitung ===&lt;br /&gt;
&lt;br /&gt;
Logischerweise muss das Webfrontend (die CGIs) auf allen Domains installiert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn man nun Mailinglisten mit newlist neu anlegt, muss man den Hostnamen für das Webfontend mit angeben, und zwar so:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist listenname@lists.example.com&lt;br /&gt;
&lt;br /&gt;
Es ist ggf. 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 lists.example.com sowohl als URL für das Webfrontend wie auch als Hostpart für Emailadressen verwendet. (Was für separate aufgeschaltete Domains wie z.B. lists.example.com gerade zutrifft.)&lt;br /&gt;
&lt;br /&gt;
Liegt das Frondend nicht auf der Maildomain ist es wichtig, dass ihr Mailman sagt, für welches die zugehörige Maildomain ist. Dies tut ihr in der Datei ~/mailman/Mailman/mm_cfg.py:&lt;br /&gt;
&lt;br /&gt;
Also z.B.&lt;br /&gt;
 DEFAULT_URL_HOST = &#039;www.example.com&#039;&lt;br /&gt;
 DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
 add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST)&lt;br /&gt;
&lt;br /&gt;
und&lt;br /&gt;
 add_virtualhost(&#039;www.zoopnet.de&#039;, &#039;lists.zoopnet.de&#039;)&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass Mailman per default davon ausgeht, dass alle Listen für die Domain example.com sind.&lt;br /&gt;
Alle weiteren 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. lists.zoopnet.de) zu.&lt;br /&gt;
&lt;br /&gt;
Tip von Raimund Specht: Lässt man den zweiten Parameter weg, also schreibt z.B. add_virtualhost(&#039;www.example.org&#039;), dann benutzt Mailman als Hostpart alles was nach dem ersten Punkt steht, hier also example.org als Maildomain.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Prinzipiell war&#039;s das. Man muss die Listeneinträge natürlich immer in die richtige virtusertable eintragen, und für gleichnamige Mailinglisten auf verschiedenen Domains (mailman@*) verschidene +Ergänzungen bzw. aliase verwenden. :)&lt;br /&gt;
&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
&lt;br /&gt;
Verschiedene Listen mit gleichem Namen (also z.B. liste@example1.com und liste@example2.com) sind mit Mailman 2.1 leider nicht möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips und Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== URL Änderungen ===&lt;br /&gt;
Nach URL Änderungen stimmen Links im Web-Interface nicht mehr und Listen werden nicht mehr angezeigt.&lt;br /&gt;
Es sind dann, zusätzlich zur Anpassung der mm_cfg.py, schon bestehende Listen und Archive mit folgendem Befehl zu aktualisieren:&lt;br /&gt;
 ~/mailman/bin/withlist -l -r fix_url &amp;lt;Listen_Name&amp;gt; -v -u &amp;lt;Neue_Url&amp;gt;&lt;br /&gt;
&amp;lt;Listen_Name&amp;gt; steht für die Mailingliste, die bearbeitet werden soll. &amp;lt;Neue_Url&amp;gt; für die neue URL/Webadresse des Webinterfaces.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Cron-Jobs zur Mailinglisten Verwaltung ===&lt;br /&gt;
&lt;br /&gt;
Folgende Cronjobs helfen bei der Verwaltung und sind User freundlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt; In Arbeit &amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referenzen ==&lt;br /&gt;
&lt;br /&gt;
Lösung zur installation als Domainadmin statt Paketadmin:&lt;br /&gt;
https://lists.hostsharing.net/archiv/support/2009-June/019414.html&lt;br /&gt;
&lt;br /&gt;
Ältere Anleitung für Installation als Domain-Admin: &amp;lt;http://lists.hostsharing.net/archiv/support/2005-January/012426.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Laufenlassen mit event:&lt;br /&gt;
Download und Doku auf &amp;lt;http://al000.hostsharing.net/mailman/mmhs/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;Mutter der Mailman-Installations-Doku&amp;quot; &amp;lt;http://al000.hostsharing.net/mailman/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kleine Tools&amp;quot; auf http://hs.andreasloesch.de, wobei das &#039;pac-mm-install&#039; wahrscheinlich nicht aktuell (genug) ist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Daz00-daniel</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2011</id>
		<title>Mailman Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2011"/>
		<updated>2009-10-06T11:28:53Z</updated>

		<summary type="html">&lt;p&gt;Daz00-daniel: /* Feintuning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Was noch jemand ergänzen müsste:&lt;br /&gt;
* Eine generische virtuser/alias Konfiguration finden und dokumentieren. &amp;lt;br&amp;gt;&lt;br /&gt;
http://listes.rezo.net/how.php&amp;lt;br&amp;gt; http://www.gnu.org/software/mailman/mailman-install/mail-server.html&lt;br /&gt;
&lt;br /&gt;
* Skriptautomatisierung updaten &amp;lt;br&amp;gt; http://hs.andreasloesch.de/pac-mm-install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation == &lt;br /&gt;
&lt;br /&gt;
Installationsanleitung von Mailman&amp;lt;br&amp;gt;&lt;br /&gt;
(zuletzt getestet mit mailman-2.1.12 in eigenem Paketuser)&lt;br /&gt;
&lt;br /&gt;
Vielen Dank an alle Benutzer die Verbesserungen beisteuern!&lt;br /&gt;
&lt;br /&gt;
Mailman kann als Paketadmin oder Paketuser installiert werden. Wenn er als Paketadmin installiert wird haben jedoch ausnahmslos alle Paketuser direkten Zugriff auf die Mailman Daten, und bei Sicherheitslücken in Mailman könnten potentiell Paketadminrechte übernommen werden.&lt;br /&gt;
&lt;br /&gt;
Zur Separation von Paketadminrechten und anderen Paketusern ist es vorzuziehen Mailman in einem Paketuser  Account zu installieren. (Bspw. xyz00-listen) Und diesem separaten User ggf mehrere lists.*.* Subdomains aufzuschalten.&lt;br /&gt;
&lt;br /&gt;
Vorteil der Installation als Paketuser ist, dass nur dieser direkten Zugriff auf die Mailmandaten hat und mailman ohne Paketadminrechte läuft. Während der Emailauslieferung werden (wie immer bei .forward) die Rechte des Zielusers angenommen. (So läuft das auch bei procmail.)&lt;br /&gt;
&lt;br /&gt;
Nachteil der Installation als Paketuser ist lediglich, dass bisher so nicht die Paketdomain mit dem SSL Zertifikat von Hostsharing genutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Sourcen besorgen und entpacken ===&lt;br /&gt;
&lt;br /&gt;
Unter http://www.gnu.org/software/mailman/ die aktuelle Software besorgen.&lt;br /&gt;
&lt;br /&gt;
 ~$ tar -xzvf mailman-2.1.12.tgz&lt;br /&gt;
&lt;br /&gt;
=== Log-Verzeichnis anlegen ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
 ~$ mkdir -p mailman/var&lt;br /&gt;
 ~$ chmod 02775 mailman/var&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mkdir var/mailman&lt;br /&gt;
 ~$ chmod 02775 var/mailman&lt;br /&gt;
&lt;br /&gt;
=== Kompilieren ===&lt;br /&gt;
&lt;br /&gt;
Braucht einige Optionen, die anzupassen sind.&lt;br /&gt;
&lt;br /&gt;
 ~$ cd mailman-2.1.12&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/users/listen/mailman \&lt;br /&gt;
              --with-username=XYZ00-listen \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/users/listen/mailman/var \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=XYZ00&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/mailman \&lt;br /&gt;
              --with-username=XYZ00 \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/var/mailman \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=nogroup&lt;br /&gt;
(die \ bedeuten, dass alles in eine Zeile gehört, bzw. die Returns nicht interpretiert werden sollen.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ make&lt;br /&gt;
 ~/mailman-2.1.12$ make install&lt;br /&gt;
&lt;br /&gt;
=== Datenrechte prüfen ===&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber die Dateirechte prüfen (und ggf. korrigieren) lassen:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ cd ..      &lt;br /&gt;
 ~$ mailman/bin/check_perms -f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== mm_cfg.py ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei editieren:&lt;br /&gt;
&lt;br /&gt;
 ~$ nano mailman/Mailman/mm_cfg.py&lt;br /&gt;
      &lt;br /&gt;
Eine Beispielkonfiguration für lists.example.com könnte so aussehen:&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
      ##################################################&lt;br /&gt;
      # Put YOUR site-specific settings below this line.&lt;br /&gt;
      # -*- python -*-&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_HOST_NAME = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_URL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_SERVER_LANGUAGE = &#039;de&#039;&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_URL_PATTERN = &#039;http://%s/&#039;&lt;br /&gt;
&lt;br /&gt;
In ~/mailman/Mailman/Defaults.py seht ihr, was man in mm_cfg.py alles einstellen kann.&lt;br /&gt;
&lt;br /&gt;
=== CGIs in die Domains ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser: Die CGIs müssen in das jeweilige Domain-Verzeichnis, auf denen das Mailman Webfrontend laufen soll, kopiert werden. Ein Verlinken ist nicht möglich. Zusätzlich muss das sticky-Flag entfernt werden.&lt;br /&gt;
&lt;br /&gt;
 ~$ mkdir ~/doms/lists.example.com/cgi/mailman&lt;br /&gt;
 ~$ cp mailman/cgi-bin/* doms/lists.example.com/cgi/mailman/&lt;br /&gt;
 ~$ chmod g-s ~/doms/lists.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin: CGIs in alle Domain-Verzeichnisse linken, auf denen das Mailman Webfrontend laufen soll. &lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/lists.example.com/cgi&lt;br /&gt;
 ~/doms/lists.example.com/cgi$ ln -s ../../../mailman/cgi-bin mailman&lt;br /&gt;
&lt;br /&gt;
===  Icons in die Domains ===&lt;br /&gt;
&lt;br /&gt;
Die Icons können wahlweise verlinkt oder kopiert werden.&lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/lists.example.com/htdocs&lt;br /&gt;
 ~/doms/lists.example.com/htdocs$ ln -s ../../../mailman/icons&lt;br /&gt;
&lt;br /&gt;
oder kopieren&lt;br /&gt;
&lt;br /&gt;
 ~$ cp -R mailman/icons doms/lists.example.com/htdocs/&lt;br /&gt;
&lt;br /&gt;
=== .htaccess ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
In ~/doms/lists.example.com/htdocs/.htaccess folgendes eintragen (bitte RewriteCond für Icons beachten; ohne wird der Pfad für diese auch gemappt, was nicht korrekt ist):&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond	%{REQUEST_URI}		!^/icons/&lt;br /&gt;
 RewriteRule	^(.*)$			/cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule	^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Mailman z.B. auf der www Domain läuft und unter www.example.com/mailman statt www.example.com/cgi-bin/mailman erreichbar sein soll, hilft folgendes in der ~/doms/example.com/subs/www/.htaccess:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteRule    ^mailman/(.*)$          /cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule    ^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
(Die DEFAULT_URL_PATTERN Zeile in der mm_cfg.py kann für diesen Fall einfach auskommentiert werden.)&lt;br /&gt;
&lt;br /&gt;
=== Passwort setzen ===&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/mmsitepass&lt;br /&gt;
&lt;br /&gt;
=== Cronjobs einrichten ===&lt;br /&gt;
&lt;br /&gt;
In die [[Cron |Crontab]] wird z.B. eingetragen:&lt;br /&gt;
&lt;br /&gt;
 * * * * *	~/mailman/bin/qrunner -o -r All&lt;br /&gt;
 47 * * * *	rm -f ~/var/mailman/logs/qrunner&lt;br /&gt;
(Queuebearbeitung alle Minute, löschen der Verarbeitungslogs in der 47ten Minute jeder Std.)&lt;br /&gt;
&lt;br /&gt;
Dies übernimmt die Funktion des qrunner-Dämons, der bei Mailman normalerweise laufen würde.&lt;br /&gt;
Das Logfile wird gelöscht, da es sonst sehr schnell sehr groß wird.&lt;br /&gt;
&lt;br /&gt;
Zudem müssen noch die Cronjobs aus ~/mailman/cron/crontab.in eingefügt werden. &lt;br /&gt;
&lt;br /&gt;
 crontab -l &amp;gt; mycronjobs.tmp&lt;br /&gt;
 cat ~/mailman/cron/crontab.in &amp;gt;&amp;gt; mycronjobs.tmp&lt;br /&gt;
 crontab mycronjobs.tmp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mailinglisten einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== Als erste Liste die &amp;quot;mailman&amp;quot; &amp;quot;site list&amp;quot; Einrichten ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;site list&amp;quot; mit dem Namen &amp;quot;mailman&amp;quot; ist die Mailingliste der lokalen Mailman Administratoren. Sie wird zur einwandfreien Funktion von Mailman benötigt.&lt;br /&gt;
&lt;br /&gt;
Neue Liste anlegen:&lt;br /&gt;
 ~$ mailman/bin/newlist mailman&lt;br /&gt;
 Enter the email of the person running the list: admin@xyz00.hostsharing.net&lt;br /&gt;
 Initial mailman password:&lt;br /&gt;
&lt;br /&gt;
Nur für die &amp;quot;mailman site list&amp;quot;: Konfigurationsvorgaben laden.&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/mailman/var/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/var/mailman/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
(Diese Konfigurationsdatei nicht auf eigene Listen anwenden.)&lt;br /&gt;
&lt;br /&gt;
=== Email Adressen einrichten === &lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser erfolgt die Einrichtung der Emailadressen per hsadmin (virtusertable) und .forward Dateien.&lt;br /&gt;
Anlegen mittels [[hsadmin|hsadmin CLI]].&lt;br /&gt;
&lt;br /&gt;
Beispiel für lists.example.com und Paketuser XYZ00-listen.&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
Im Homeverzeichnis des Users XYZ00-listen werden anschließend entsprechende .forward-Dateien angelegt.&lt;br /&gt;
&lt;br /&gt;
B) .forward Dateien:&lt;br /&gt;
 echo &#039;admin@XYZ00.hostsharing.net&#039; &amp;gt; .forward # Weiterleitung von cron Fehlern etc an Paketadmin.&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman post mailman&amp;quot;&#039; &amp;gt; .forward+mailman&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman admin mailman&amp;quot;&#039; &amp;gt; .forward+mailman-admin&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman bounces mailman&amp;quot;&#039; &amp;gt; .forward+mailman-bounces&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman confirm mailman&amp;quot;&#039; &amp;gt; .forward+mailman-confirm&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman join mailman&amp;quot;&#039; &amp;gt; .forward+mailman-join&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman leave mailman&amp;quot;&#039; &amp;gt; .forward+mailman-leave&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman owner mailman&amp;quot;&#039; &amp;gt; .forward+mailman-owner&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman request mailman&amp;quot;&#039; &amp;gt; .forward+mailman-request&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman subscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-subscribe&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-unsubscribe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin XYZ00 erfolgt die Einrichtung hingegen per hsadmin (virtusertable) und hsadmin (aliases) so:&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Die bei den Mail-Adressen oben angegebenen Aliase werden mit [[hsadmin|hsadmin CLI]] angelegt.&lt;br /&gt;
&lt;br /&gt;
B) aliase:&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman post mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-admin&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman admin mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-bounces&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman bounces mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-confirm&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman confirm mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-join&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman join mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-leave&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman leave mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-owner&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman owner mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-request&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman request mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-subscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman subscribe mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-unsubscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
&lt;br /&gt;
Administriert werden Listen über http://lists.example.com/admin/&amp;lt;listenname&amp;gt; und entweder dem Listenpasswort oder dem Site-Passwort.&lt;br /&gt;
&lt;br /&gt;
Als erstes sollte man die Liste &amp;quot;mailman&amp;quot; selber abbonieren. (http://lists.example.com/admin/mailman)&lt;br /&gt;
&lt;br /&gt;
Bis auf das Anwenden der sitelist.cfg werden auch alle weiteren Listen nach obigem Schema angelegt, oder (bis auf das anlegen der virtusertable Einträge und aliase) über das Mailman Webinterface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war&#039;s. Mailman ist jetzt fertig installiert und müsste sogar funktionieren ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Feintuning == &lt;br /&gt;
&lt;br /&gt;
Wer will, kann auch noch etwas Platz sparen. Die normale Mailmaninstallation schlägt mit über 20 MB zu Buche...&lt;br /&gt;
&lt;br /&gt;
Mit den folgenden Tips kann man das auf ca. 6 MB reduzieren :)&lt;br /&gt;
&lt;br /&gt;
Es kann natürlich sein, dass ich zuviel lösche, aber bei mir funktioniert&#039;s. Wenn ihr also sicher(er) sein wollt, dass euch der Mailman nicht um die Ohren fliegt, macht das nicht!&lt;br /&gt;
&lt;br /&gt;
*  ~/mailman/cgi-bin und ~/mailman/icons können gelöscht werden, falls sie an andere Stelle kopiert worden sind.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/messages löschen.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/templates löschen (bis auf englisch).&lt;br /&gt;
* ~/mailman/tests kann, soweit ich das sehe, komplett gelöscht werden.&lt;br /&gt;
* Falls man koreanisch und japanisch nicht braucht, kann man folgendes machen:&lt;br /&gt;
* in ~/mailman/bin/paths.py, ~/mailman/cron/paths.py und ~/mailman/scripts/paths.py die Zeilen:&lt;br /&gt;
&lt;br /&gt;
 # In a normal interactive Python environment, the japanese.pth and korean.pth&lt;br /&gt;
 # files would be imported automatically.  But because we inhibit the importing&lt;br /&gt;
 # of the site module, we need to be explicit about importing these codecs.&lt;br /&gt;
 if not jaok:&lt;br /&gt;
     import japanese&lt;br /&gt;
 # As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean&lt;br /&gt;
 # codecs installed, however leave the first import in there in case an upgrade&lt;br /&gt;
 # changes this.&lt;br /&gt;
 if not kook:&lt;br /&gt;
     import korean&lt;br /&gt;
     import korean.aliases&lt;br /&gt;
&lt;br /&gt;
auskommentieren.&lt;br /&gt;
&lt;br /&gt;
Dann kann man ~/mailman/pythonlib/japanese, ~/mailman/pythonlib/korean, ~/mailman/pythonlib/korean.pth sowie ~/mailman/pythonlib/lib löschen.&lt;br /&gt;
   &lt;br /&gt;
Man kann auch noch die Debug-Informationen aus den binaries strippen:&lt;br /&gt;
&lt;br /&gt;
 strip ~/mailman/mail/mailman&lt;br /&gt;
 strip ~/mailman/cgi-bin/*&lt;br /&gt;
&lt;br /&gt;
Falls die CGIs nicht gesymlinkt wurden:&lt;br /&gt;
&lt;br /&gt;
 strip ~/doms/lists.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
== Multidomainfähigkeit ==&lt;br /&gt;
&lt;br /&gt;
Seit Mailman 2.x kann eine Mailman-Installation unter gewissen Einschränkungen für mehrere Domains verwendet werden. Hier soll kurz gezeigt werden, was geht und wie es geht.&lt;br /&gt;
&lt;br /&gt;
=== Anleitung ===&lt;br /&gt;
&lt;br /&gt;
Logischerweise muss das Webfrontend (die CGIs) auf allen Domains installiert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn man nun Mailinglisten mit newlist neu anlegt, muss man den Hostnamen für das Webfontend mit angeben, und zwar so:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist listenname@lists.example.com&lt;br /&gt;
&lt;br /&gt;
Es ist ggf. 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 lists.example.com sowohl als URL für das Webfrontend wie auch als Hostpart für Emailadressen verwendet. (Was für separate aufgeschaltete Domains wie z.B. lists.example.com gerade zutrifft.)&lt;br /&gt;
&lt;br /&gt;
Liegt das Frondend nicht auf der Maildomain ist es wichtig, dass ihr Mailman sagt, für welches die zugehörige Maildomain ist. Dies tut ihr in der Datei ~/mailman/Mailman/mm_cfg.py:&lt;br /&gt;
&lt;br /&gt;
Also z.B.&lt;br /&gt;
 DEFAULT_URL_HOST = &#039;www.example.com&#039;&lt;br /&gt;
 DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
 add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST)&lt;br /&gt;
&lt;br /&gt;
und&lt;br /&gt;
 add_virtualhost(&#039;www.zoopnet.de&#039;, &#039;lists.zoopnet.de&#039;)&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass Mailman per default davon ausgeht, dass alle Listen für die Domain example.com sind.&lt;br /&gt;
Alle weiteren 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. lists.zoopnet.de) zu.&lt;br /&gt;
&lt;br /&gt;
Tip von Raimund Specht: Lässt man den zweiten Parameter weg, also schreibt z.B. add_virtualhost(&#039;www.example.org&#039;), dann benutzt Mailman als Hostpart alles was nach dem ersten Punkt steht, hier also example.org als Maildomain.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Prinzipiell war&#039;s das. Man muss die Listeneinträge natürlich immer in die richtige virtusertable eintragen, und für gleichnamige Mailinglisten auf verschiedenen Domains (mailman@*) verschidene +Ergänzungen bzw. aliase verwenden. :)&lt;br /&gt;
&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
&lt;br /&gt;
Verschiedene Listen mit gleichem Namen (also z.B. liste@example1.com und liste@example2.com) sind mit Mailman 2.1 leider nicht möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips und Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== URL Änderungen ===&lt;br /&gt;
Nach URL Änderungen stimmen Links im Web-Interface nicht mehr und Listen werden nicht mehr angezeigt.&lt;br /&gt;
Es sind dann, zusätzlich zur Anpassung der mm_cfg.py, schon bestehende Listen und Archive mit folgendem Befehl zu aktualisieren:&lt;br /&gt;
 ~/mailman/bin/withlist -l -r fix_url &amp;lt;Listen_Name&amp;gt; -v -u &amp;lt;Neue_Url&amp;gt;&lt;br /&gt;
&amp;lt;Listen_Name&amp;gt; steht für die Mailingliste, die bearbeitet werden soll. &amp;lt;Neue_Url&amp;gt; für die neue URL/Webadresse des Webinterfaces.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Cron-Jobs zur Mailinglisten Verwaltung ===&lt;br /&gt;
&lt;br /&gt;
Folgende Cronjobs helfen bei der Verwaltung und sind User freundlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt; In Arbeit &amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referenzen ==&lt;br /&gt;
&lt;br /&gt;
Lösung zur installation als Domainadmin statt Paketadmin:&lt;br /&gt;
https://lists.hostsharing.net/archiv/support/2009-June/019414.html&lt;br /&gt;
&lt;br /&gt;
Ältere Anleitung für Installation als Domain-Admin: &amp;lt;http://lists.hostsharing.net/archiv/support/2005-January/012426.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Laufenlassen mit event:&lt;br /&gt;
Download und Doku auf &amp;lt;http://al000.hostsharing.net/mailman/mmhs/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;Mutter der Mailman-Installations-Doku&amp;quot; &amp;lt;http://al000.hostsharing.net/mailman/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;kleinen Tools&amp;quot; auf http://hs.andreasloesch.de, wobei das &#039;pac-mm-install&#039; wahrscheinlich nicht aktuell (genug) ist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Daz00-daniel</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2010</id>
		<title>Mailman Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2010"/>
		<updated>2009-10-06T11:27:47Z</updated>

		<summary type="html">&lt;p&gt;Daz00-daniel: /* .htaccess */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Was noch jemand ergänzen müsste:&lt;br /&gt;
* Eine generische virtuser/alias Konfiguration finden und dokumentieren. &amp;lt;br&amp;gt;&lt;br /&gt;
http://listes.rezo.net/how.php&amp;lt;br&amp;gt; http://www.gnu.org/software/mailman/mailman-install/mail-server.html&lt;br /&gt;
&lt;br /&gt;
* Skriptautomatisierung updaten &amp;lt;br&amp;gt; http://hs.andreasloesch.de/pac-mm-install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation == &lt;br /&gt;
&lt;br /&gt;
Installationsanleitung von Mailman&amp;lt;br&amp;gt;&lt;br /&gt;
(zuletzt getestet mit mailman-2.1.12 in eigenem Paketuser)&lt;br /&gt;
&lt;br /&gt;
Vielen Dank an alle Benutzer die Verbesserungen beisteuern!&lt;br /&gt;
&lt;br /&gt;
Mailman kann als Paketadmin oder Paketuser installiert werden. Wenn er als Paketadmin installiert wird haben jedoch ausnahmslos alle Paketuser direkten Zugriff auf die Mailman Daten, und bei Sicherheitslücken in Mailman könnten potentiell Paketadminrechte übernommen werden.&lt;br /&gt;
&lt;br /&gt;
Zur Separation von Paketadminrechten und anderen Paketusern ist es vorzuziehen Mailman in einem Paketuser  Account zu installieren. (Bspw. xyz00-listen) Und diesem separaten User ggf mehrere lists.*.* Subdomains aufzuschalten.&lt;br /&gt;
&lt;br /&gt;
Vorteil der Installation als Paketuser ist, dass nur dieser direkten Zugriff auf die Mailmandaten hat und mailman ohne Paketadminrechte läuft. Während der Emailauslieferung werden (wie immer bei .forward) die Rechte des Zielusers angenommen. (So läuft das auch bei procmail.)&lt;br /&gt;
&lt;br /&gt;
Nachteil der Installation als Paketuser ist lediglich, dass bisher so nicht die Paketdomain mit dem SSL Zertifikat von Hostsharing genutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Sourcen besorgen und entpacken ===&lt;br /&gt;
&lt;br /&gt;
Unter http://www.gnu.org/software/mailman/ die aktuelle Software besorgen.&lt;br /&gt;
&lt;br /&gt;
 ~$ tar -xzvf mailman-2.1.12.tgz&lt;br /&gt;
&lt;br /&gt;
=== Log-Verzeichnis anlegen ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
 ~$ mkdir -p mailman/var&lt;br /&gt;
 ~$ chmod 02775 mailman/var&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mkdir var/mailman&lt;br /&gt;
 ~$ chmod 02775 var/mailman&lt;br /&gt;
&lt;br /&gt;
=== Kompilieren ===&lt;br /&gt;
&lt;br /&gt;
Braucht einige Optionen, die anzupassen sind.&lt;br /&gt;
&lt;br /&gt;
 ~$ cd mailman-2.1.12&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/users/listen/mailman \&lt;br /&gt;
              --with-username=XYZ00-listen \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/users/listen/mailman/var \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=XYZ00&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/mailman \&lt;br /&gt;
              --with-username=XYZ00 \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/var/mailman \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=nogroup&lt;br /&gt;
(die \ bedeuten, dass alles in eine Zeile gehört, bzw. die Returns nicht interpretiert werden sollen.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ make&lt;br /&gt;
 ~/mailman-2.1.12$ make install&lt;br /&gt;
&lt;br /&gt;
=== Datenrechte prüfen ===&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber die Dateirechte prüfen (und ggf. korrigieren) lassen:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ cd ..      &lt;br /&gt;
 ~$ mailman/bin/check_perms -f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== mm_cfg.py ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei editieren:&lt;br /&gt;
&lt;br /&gt;
 ~$ nano mailman/Mailman/mm_cfg.py&lt;br /&gt;
      &lt;br /&gt;
Eine Beispielkonfiguration für lists.example.com könnte so aussehen:&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
      ##################################################&lt;br /&gt;
      # Put YOUR site-specific settings below this line.&lt;br /&gt;
      # -*- python -*-&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_HOST_NAME = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_URL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_SERVER_LANGUAGE = &#039;de&#039;&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_URL_PATTERN = &#039;http://%s/&#039;&lt;br /&gt;
&lt;br /&gt;
In ~/mailman/Mailman/Defaults.py seht ihr, was man in mm_cfg.py alles einstellen kann.&lt;br /&gt;
&lt;br /&gt;
=== CGIs in die Domains ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser: Die CGIs müssen in das jeweilige Domain-Verzeichnis, auf denen das Mailman Webfrontend laufen soll, kopiert werden. Ein Verlinken ist nicht möglich. Zusätzlich muss das sticky-Flag entfernt werden.&lt;br /&gt;
&lt;br /&gt;
 ~$ mkdir ~/doms/lists.example.com/cgi/mailman&lt;br /&gt;
 ~$ cp mailman/cgi-bin/* doms/lists.example.com/cgi/mailman/&lt;br /&gt;
 ~$ chmod g-s ~/doms/lists.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin: CGIs in alle Domain-Verzeichnisse linken, auf denen das Mailman Webfrontend laufen soll. &lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/lists.example.com/cgi&lt;br /&gt;
 ~/doms/lists.example.com/cgi$ ln -s ../../../mailman/cgi-bin mailman&lt;br /&gt;
&lt;br /&gt;
===  Icons in die Domains ===&lt;br /&gt;
&lt;br /&gt;
Die Icons können wahlweise verlinkt oder kopiert werden.&lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/lists.example.com/htdocs&lt;br /&gt;
 ~/doms/lists.example.com/htdocs$ ln -s ../../../mailman/icons&lt;br /&gt;
&lt;br /&gt;
oder kopieren&lt;br /&gt;
&lt;br /&gt;
 ~$ cp -R mailman/icons doms/lists.example.com/htdocs/&lt;br /&gt;
&lt;br /&gt;
=== .htaccess ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
In ~/doms/lists.example.com/htdocs/.htaccess folgendes eintragen (bitte RewriteCond für Icons beachten; ohne wird der Pfad für diese auch gemappt, was nicht korrekt ist):&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond	%{REQUEST_URI}		!^/icons/&lt;br /&gt;
 RewriteRule	^(.*)$			/cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule	^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Mailman z.B. auf der www Domain läuft und unter www.example.com/mailman statt www.example.com/cgi-bin/mailman erreichbar sein soll, hilft folgendes in der ~/doms/example.com/subs/www/.htaccess:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteRule    ^mailman/(.*)$          /cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule    ^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
(Die DEFAULT_URL_PATTERN Zeile in der mm_cfg.py kann für diesen Fall einfach auskommentiert werden.)&lt;br /&gt;
&lt;br /&gt;
=== Passwort setzen ===&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/mmsitepass&lt;br /&gt;
&lt;br /&gt;
=== Cronjobs einrichten ===&lt;br /&gt;
&lt;br /&gt;
In die [[Cron |Crontab]] wird z.B. eingetragen:&lt;br /&gt;
&lt;br /&gt;
 * * * * *	~/mailman/bin/qrunner -o -r All&lt;br /&gt;
 47 * * * *	rm -f ~/var/mailman/logs/qrunner&lt;br /&gt;
(Queuebearbeitung alle Minute, löschen der Verarbeitungslogs in der 47ten Minute jeder Std.)&lt;br /&gt;
&lt;br /&gt;
Dies übernimmt die Funktion des qrunner-Dämons, der bei Mailman normalerweise laufen würde.&lt;br /&gt;
Das Logfile wird gelöscht, da es sonst sehr schnell sehr groß wird.&lt;br /&gt;
&lt;br /&gt;
Zudem müssen noch die Cronjobs aus ~/mailman/cron/crontab.in eingefügt werden. &lt;br /&gt;
&lt;br /&gt;
 crontab -l &amp;gt; mycronjobs.tmp&lt;br /&gt;
 cat ~/mailman/cron/crontab.in &amp;gt;&amp;gt; mycronjobs.tmp&lt;br /&gt;
 crontab mycronjobs.tmp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mailinglisten einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== Als erste Liste die &amp;quot;mailman&amp;quot; &amp;quot;site list&amp;quot; Einrichten ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;site list&amp;quot; mit dem Namen &amp;quot;mailman&amp;quot; ist die Mailingliste der lokalen Mailman Administratoren. Sie wird zur einwandfreien Funktion von Mailman benötigt.&lt;br /&gt;
&lt;br /&gt;
Neue Liste anlegen:&lt;br /&gt;
 ~$ mailman/bin/newlist mailman&lt;br /&gt;
 Enter the email of the person running the list: admin@xyz00.hostsharing.net&lt;br /&gt;
 Initial mailman password:&lt;br /&gt;
&lt;br /&gt;
Nur für die &amp;quot;mailman site list&amp;quot;: Konfigurationsvorgaben laden.&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/mailman/var/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/var/mailman/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
(Diese Konfigurationsdatei nicht auf eigene Listen anwenden.)&lt;br /&gt;
&lt;br /&gt;
=== Email Adressen einrichten === &lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser erfolgt die Einrichtung der Emailadressen per hsadmin (virtusertable) und .forward Dateien.&lt;br /&gt;
Anlegen mittels [[hsadmin|hsadmin CLI]].&lt;br /&gt;
&lt;br /&gt;
Beispiel für lists.example.com und Paketuser XYZ00-listen.&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
Im Homeverzeichnis des Users XYZ00-listen werden anschließend entsprechende .forward-Dateien angelegt.&lt;br /&gt;
&lt;br /&gt;
B) .forward Dateien:&lt;br /&gt;
 echo &#039;admin@XYZ00.hostsharing.net&#039; &amp;gt; .forward # Weiterleitung von cron Fehlern etc an Paketadmin.&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman post mailman&amp;quot;&#039; &amp;gt; .forward+mailman&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman admin mailman&amp;quot;&#039; &amp;gt; .forward+mailman-admin&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman bounces mailman&amp;quot;&#039; &amp;gt; .forward+mailman-bounces&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman confirm mailman&amp;quot;&#039; &amp;gt; .forward+mailman-confirm&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman join mailman&amp;quot;&#039; &amp;gt; .forward+mailman-join&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman leave mailman&amp;quot;&#039; &amp;gt; .forward+mailman-leave&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman owner mailman&amp;quot;&#039; &amp;gt; .forward+mailman-owner&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman request mailman&amp;quot;&#039; &amp;gt; .forward+mailman-request&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman subscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-subscribe&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-unsubscribe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin XYZ00 erfolgt die Einrichtung hingegen per hsadmin (virtusertable) und hsadmin (aliases) so:&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Die bei den Mail-Adressen oben angegebenen Aliase werden mit [[hsadmin|hsadmin CLI]] angelegt.&lt;br /&gt;
&lt;br /&gt;
B) aliase:&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman post mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-admin&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman admin mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-bounces&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman bounces mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-confirm&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman confirm mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-join&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman join mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-leave&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman leave mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-owner&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman owner mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-request&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman request mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-subscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman subscribe mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-unsubscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
&lt;br /&gt;
Administriert werden Listen über http://lists.example.com/admin/&amp;lt;listenname&amp;gt; und entweder dem Listenpasswort oder dem Site-Passwort.&lt;br /&gt;
&lt;br /&gt;
Als erstes sollte man die Liste &amp;quot;mailman&amp;quot; selber abbonieren. (http://lists.example.com/admin/mailman)&lt;br /&gt;
&lt;br /&gt;
Bis auf das Anwenden der sitelist.cfg werden auch alle weiteren Listen nach obigem Schema angelegt, oder (bis auf das anlegen der virtusertable Einträge und aliase) über das Mailman Webinterface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war&#039;s. Mailman ist jetzt fertig installiert und müsste sogar funktionieren ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Feintuning == &lt;br /&gt;
&lt;br /&gt;
Wer will, kann auch noch etwas Platz sparen. Die normale Mailmaninstallation schlägt mit über 20 MB zu Buche...&lt;br /&gt;
&lt;br /&gt;
Mit den folgenden Tips kann man das auf ca. 6 MB reduzieren :)&lt;br /&gt;
&lt;br /&gt;
Es kann natürlich sein, dass ich zuviel lösche, aber bei mir funktioniert&#039;s. Wenn ihr also sicher(er) sein wollt, dass euch der Mailman nicht um die Ohren fliegt, macht das nicht!&lt;br /&gt;
&lt;br /&gt;
*  ~/mailman/cgi-bin und ~/mailman/icons können gelöscht werden, falls sie an andere Stelle kopiert worden sind.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/messages löschen.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/templates löschen (bis auf englisch).&lt;br /&gt;
* ~/mailman/tests kann, soweit ich das sehe, komplett gelöscht werden.&lt;br /&gt;
* Falls man koreanisch und japanisch nicht braucht, kann man folgendes machen:&lt;br /&gt;
* in ~/mailman/bin/paths.py, ~/mailman/cron/paths.py und ~/mailman/scripts/paths.py die Zeilen:&lt;br /&gt;
&lt;br /&gt;
 # In a normal interactive Python environment, the japanese.pth and korean.pth&lt;br /&gt;
 # files would be imported automatically.  But because we inhibit the importing&lt;br /&gt;
 # of the site module, we need to be explicit about importing these codecs.&lt;br /&gt;
 if not jaok:&lt;br /&gt;
     import japanese&lt;br /&gt;
 # As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean&lt;br /&gt;
 # codecs installed, however leave the first import in there in case an upgrade&lt;br /&gt;
 # changes this.&lt;br /&gt;
 if not kook:&lt;br /&gt;
     import korean&lt;br /&gt;
     import korean.aliases&lt;br /&gt;
&lt;br /&gt;
auskommentieren.&lt;br /&gt;
&lt;br /&gt;
Dann kann man ~/mailman/pythonlib/japanese, ~/mailman/pythonlib/korean, ~/mailman/pythonlib/korean.pth sowie ~/mailman/pythonlib/lib löschen.&lt;br /&gt;
   &lt;br /&gt;
Man kann auch noch die Debug-Informationen aus den binaries strippen:&lt;br /&gt;
&lt;br /&gt;
      strip ~/mailman/mail/mailman&lt;br /&gt;
      strip ~/mailman/cgi-bin/*&lt;br /&gt;
&lt;br /&gt;
Falls die CGIs nicht gesymlinkt wurden:&lt;br /&gt;
      strip ~/doms/lists.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multidomainfähigkeit ==&lt;br /&gt;
&lt;br /&gt;
Seit Mailman 2.x kann eine Mailman-Installation unter gewissen Einschränkungen für mehrere Domains verwendet werden. Hier soll kurz gezeigt werden, was geht und wie es geht.&lt;br /&gt;
&lt;br /&gt;
=== Anleitung ===&lt;br /&gt;
&lt;br /&gt;
Logischerweise muss das Webfrontend (die CGIs) auf allen Domains installiert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn man nun Mailinglisten mit newlist neu anlegt, muss man den Hostnamen für das Webfontend mit angeben, und zwar so:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist listenname@lists.example.com&lt;br /&gt;
&lt;br /&gt;
Es ist ggf. 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 lists.example.com sowohl als URL für das Webfrontend wie auch als Hostpart für Emailadressen verwendet. (Was für separate aufgeschaltete Domains wie z.B. lists.example.com gerade zutrifft.)&lt;br /&gt;
&lt;br /&gt;
Liegt das Frondend nicht auf der Maildomain ist es wichtig, dass ihr Mailman sagt, für welches die zugehörige Maildomain ist. Dies tut ihr in der Datei ~/mailman/Mailman/mm_cfg.py:&lt;br /&gt;
&lt;br /&gt;
Also z.B.&lt;br /&gt;
 DEFAULT_URL_HOST = &#039;www.example.com&#039;&lt;br /&gt;
 DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
 add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST)&lt;br /&gt;
&lt;br /&gt;
und&lt;br /&gt;
 add_virtualhost(&#039;www.zoopnet.de&#039;, &#039;lists.zoopnet.de&#039;)&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass Mailman per default davon ausgeht, dass alle Listen für die Domain example.com sind.&lt;br /&gt;
Alle weiteren 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. lists.zoopnet.de) zu.&lt;br /&gt;
&lt;br /&gt;
Tip von Raimund Specht: Lässt man den zweiten Parameter weg, also schreibt z.B. add_virtualhost(&#039;www.example.org&#039;), dann benutzt Mailman als Hostpart alles was nach dem ersten Punkt steht, hier also example.org als Maildomain.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Prinzipiell war&#039;s das. Man muss die Listeneinträge natürlich immer in die richtige virtusertable eintragen, und für gleichnamige Mailinglisten auf verschiedenen Domains (mailman@*) verschidene +Ergänzungen bzw. aliase verwenden. :)&lt;br /&gt;
&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
&lt;br /&gt;
Verschiedene Listen mit gleichem Namen (also z.B. liste@example1.com und liste@example2.com) sind mit Mailman 2.1 leider nicht möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips und Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== URL Änderungen ===&lt;br /&gt;
Nach URL Änderungen stimmen Links im Web-Interface nicht mehr und Listen werden nicht mehr angezeigt.&lt;br /&gt;
Es sind dann, zusätzlich zur Anpassung der mm_cfg.py, schon bestehende Listen und Archive mit folgendem Befehl zu aktualisieren:&lt;br /&gt;
 ~/mailman/bin/withlist -l -r fix_url &amp;lt;Listen_Name&amp;gt; -v -u &amp;lt;Neue_Url&amp;gt;&lt;br /&gt;
&amp;lt;Listen_Name&amp;gt; steht für die Mailingliste, die bearbeitet werden soll. &amp;lt;Neue_Url&amp;gt; für die neue URL/Webadresse des Webinterfaces.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Cron-Jobs zur Mailinglisten Verwaltung ===&lt;br /&gt;
&lt;br /&gt;
Folgende Cronjobs helfen bei der Verwaltung und sind User freundlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt; In Arbeit &amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referenzen ==&lt;br /&gt;
&lt;br /&gt;
Lösung zur installation als Domainadmin statt Paketadmin:&lt;br /&gt;
https://lists.hostsharing.net/archiv/support/2009-June/019414.html&lt;br /&gt;
&lt;br /&gt;
Ältere Anleitung für Installation als Domain-Admin: &amp;lt;http://lists.hostsharing.net/archiv/support/2005-January/012426.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Laufenlassen mit event:&lt;br /&gt;
Download und Doku auf &amp;lt;http://al000.hostsharing.net/mailman/mmhs/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;Mutter der Mailman-Installations-Doku&amp;quot; &amp;lt;http://al000.hostsharing.net/mailman/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;kleinen Tools&amp;quot; auf http://hs.andreasloesch.de, wobei das &#039;pac-mm-install&#039; wahrscheinlich nicht aktuell (genug) ist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Daz00-daniel</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2009</id>
		<title>Mailman Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2009"/>
		<updated>2009-10-06T11:24:47Z</updated>

		<summary type="html">&lt;p&gt;Daz00-daniel: CGI-Kapitel angepasst, Konsistenz verbessert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Was noch jemand ergänzen müsste:&lt;br /&gt;
* Eine generische virtuser/alias Konfiguration finden und dokumentieren. &amp;lt;br&amp;gt;&lt;br /&gt;
http://listes.rezo.net/how.php&amp;lt;br&amp;gt; http://www.gnu.org/software/mailman/mailman-install/mail-server.html&lt;br /&gt;
&lt;br /&gt;
* Skriptautomatisierung updaten &amp;lt;br&amp;gt; http://hs.andreasloesch.de/pac-mm-install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation == &lt;br /&gt;
&lt;br /&gt;
Installationsanleitung von Mailman&amp;lt;br&amp;gt;&lt;br /&gt;
(zuletzt getestet mit mailman-2.1.12 in eigenem Paketuser)&lt;br /&gt;
&lt;br /&gt;
Vielen Dank an alle Benutzer die Verbesserungen beisteuern!&lt;br /&gt;
&lt;br /&gt;
Mailman kann als Paketadmin oder Paketuser installiert werden. Wenn er als Paketadmin installiert wird haben jedoch ausnahmslos alle Paketuser direkten Zugriff auf die Mailman Daten, und bei Sicherheitslücken in Mailman könnten potentiell Paketadminrechte übernommen werden.&lt;br /&gt;
&lt;br /&gt;
Zur Separation von Paketadminrechten und anderen Paketusern ist es vorzuziehen Mailman in einem Paketuser  Account zu installieren. (Bspw. xyz00-listen) Und diesem separaten User ggf mehrere lists.*.* Subdomains aufzuschalten.&lt;br /&gt;
&lt;br /&gt;
Vorteil der Installation als Paketuser ist, dass nur dieser direkten Zugriff auf die Mailmandaten hat und mailman ohne Paketadminrechte läuft. Während der Emailauslieferung werden (wie immer bei .forward) die Rechte des Zielusers angenommen. (So läuft das auch bei procmail.)&lt;br /&gt;
&lt;br /&gt;
Nachteil der Installation als Paketuser ist lediglich, dass bisher so nicht die Paketdomain mit dem SSL Zertifikat von Hostsharing genutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Sourcen besorgen und entpacken ===&lt;br /&gt;
&lt;br /&gt;
Unter http://www.gnu.org/software/mailman/ die aktuelle Software besorgen.&lt;br /&gt;
&lt;br /&gt;
 ~$ tar -xzvf mailman-2.1.12.tgz&lt;br /&gt;
&lt;br /&gt;
=== Log-Verzeichnis anlegen ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
 ~$ mkdir -p mailman/var&lt;br /&gt;
 ~$ chmod 02775 mailman/var&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mkdir var/mailman&lt;br /&gt;
 ~$ chmod 02775 var/mailman&lt;br /&gt;
&lt;br /&gt;
=== Kompilieren ===&lt;br /&gt;
&lt;br /&gt;
Braucht einige Optionen, die anzupassen sind.&lt;br /&gt;
&lt;br /&gt;
 ~$ cd mailman-2.1.12&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/users/listen/mailman \&lt;br /&gt;
              --with-username=XYZ00-listen \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/users/listen/mailman/var \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=XYZ00&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/mailman \&lt;br /&gt;
              --with-username=XYZ00 \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/var/mailman \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=nogroup&lt;br /&gt;
(die \ bedeuten, dass alles in eine Zeile gehört, bzw. die Returns nicht interpretiert werden sollen.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ make&lt;br /&gt;
 ~/mailman-2.1.12$ make install&lt;br /&gt;
&lt;br /&gt;
=== Datenrechte prüfen ===&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber die Dateirechte prüfen (und ggf. korrigieren) lassen:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ cd ..      &lt;br /&gt;
 ~$ mailman/bin/check_perms -f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== mm_cfg.py ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei editieren:&lt;br /&gt;
&lt;br /&gt;
 ~$ nano mailman/Mailman/mm_cfg.py&lt;br /&gt;
      &lt;br /&gt;
Eine Beispielkonfiguration für lists.example.com könnte so aussehen:&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
      ##################################################&lt;br /&gt;
      # Put YOUR site-specific settings below this line.&lt;br /&gt;
      # -*- python -*-&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_HOST_NAME = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_URL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_SERVER_LANGUAGE = &#039;de&#039;&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_URL_PATTERN = &#039;http://%s/&#039;&lt;br /&gt;
&lt;br /&gt;
In ~/mailman/Mailman/Defaults.py seht ihr, was man in mm_cfg.py alles einstellen kann.&lt;br /&gt;
&lt;br /&gt;
=== CGIs in die Domains ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser: Die CGIs müssen in das jeweilige Domain-Verzeichnis, auf denen das Mailman Webfrontend laufen soll, kopiert werden. Ein Verlinken ist nicht möglich. Zusätzlich muss das sticky-Flag entfernt werden.&lt;br /&gt;
&lt;br /&gt;
 ~$ mkdir ~/doms/lists.example.com/cgi/mailman&lt;br /&gt;
 ~$ cp mailman/cgi-bin/* doms/lists.example.com/cgi/mailman/&lt;br /&gt;
 ~$ chmod g-s ~/doms/lists.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin: CGIs in alle Domain-Verzeichnisse linken, auf denen das Mailman Webfrontend laufen soll. &lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/lists.example.com/cgi&lt;br /&gt;
 ~/doms/lists.example.com/cgi$ ln -s ../../../mailman/cgi-bin mailman&lt;br /&gt;
&lt;br /&gt;
===  Icons in die Domains ===&lt;br /&gt;
&lt;br /&gt;
Die Icons können wahlweise verlinkt oder kopiert werden.&lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/lists.example.com/htdocs&lt;br /&gt;
 ~/doms/lists.example.com/htdocs$ ln -s ../../../mailman/icons&lt;br /&gt;
&lt;br /&gt;
oder kopieren&lt;br /&gt;
&lt;br /&gt;
 ~$ cp -R mailman/icons doms/lists.example.com/htdocs/&lt;br /&gt;
&lt;br /&gt;
=== .htaccess ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond	%{REQUEST_URI}		!^/icons/&lt;br /&gt;
 RewriteRule	^(.*)$			/cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule	^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Mailman z.B. auf der www Domain läuft und unter www.example.com/mailman statt www.example.com/cgi-bin/mailman erreichbar sein soll, hilft folgendes in der ~/doms/example.com/subs/www/.htaccess:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteRule    ^mailman/(.*)$          /cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule    ^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
(Die DEFAULT_URL_PATTERN Zeile in der mm_cfg.py kann für diesen Fall einfach auskommentiert werden.)&lt;br /&gt;
&lt;br /&gt;
=== Passwort setzen ===&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/mmsitepass&lt;br /&gt;
&lt;br /&gt;
=== Cronjobs einrichten ===&lt;br /&gt;
&lt;br /&gt;
In die [[Cron |Crontab]] wird z.B. eingetragen:&lt;br /&gt;
&lt;br /&gt;
 * * * * *	~/mailman/bin/qrunner -o -r All&lt;br /&gt;
 47 * * * *	rm -f ~/var/mailman/logs/qrunner&lt;br /&gt;
(Queuebearbeitung alle Minute, löschen der Verarbeitungslogs in der 47ten Minute jeder Std.)&lt;br /&gt;
&lt;br /&gt;
Dies übernimmt die Funktion des qrunner-Dämons, der bei Mailman normalerweise laufen würde.&lt;br /&gt;
Das Logfile wird gelöscht, da es sonst sehr schnell sehr groß wird.&lt;br /&gt;
&lt;br /&gt;
Zudem müssen noch die Cronjobs aus ~/mailman/cron/crontab.in eingefügt werden. &lt;br /&gt;
&lt;br /&gt;
 crontab -l &amp;gt; mycronjobs.tmp&lt;br /&gt;
 cat ~/mailman/cron/crontab.in &amp;gt;&amp;gt; mycronjobs.tmp&lt;br /&gt;
 crontab mycronjobs.tmp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mailinglisten einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== Als erste Liste die &amp;quot;mailman&amp;quot; &amp;quot;site list&amp;quot; Einrichten ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;site list&amp;quot; mit dem Namen &amp;quot;mailman&amp;quot; ist die Mailingliste der lokalen Mailman Administratoren. Sie wird zur einwandfreien Funktion von Mailman benötigt.&lt;br /&gt;
&lt;br /&gt;
Neue Liste anlegen:&lt;br /&gt;
 ~$ mailman/bin/newlist mailman&lt;br /&gt;
 Enter the email of the person running the list: admin@xyz00.hostsharing.net&lt;br /&gt;
 Initial mailman password:&lt;br /&gt;
&lt;br /&gt;
Nur für die &amp;quot;mailman site list&amp;quot;: Konfigurationsvorgaben laden.&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/mailman/var/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/var/mailman/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
(Diese Konfigurationsdatei nicht auf eigene Listen anwenden.)&lt;br /&gt;
&lt;br /&gt;
=== Email Adressen einrichten === &lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser erfolgt die Einrichtung der Emailadressen per hsadmin (virtusertable) und .forward Dateien.&lt;br /&gt;
Anlegen mittels [[hsadmin|hsadmin CLI]].&lt;br /&gt;
&lt;br /&gt;
Beispiel für lists.example.com und Paketuser XYZ00-listen.&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
Im Homeverzeichnis des Users XYZ00-listen werden anschließend entsprechende .forward-Dateien angelegt.&lt;br /&gt;
&lt;br /&gt;
B) .forward Dateien:&lt;br /&gt;
 echo &#039;admin@XYZ00.hostsharing.net&#039; &amp;gt; .forward # Weiterleitung von cron Fehlern etc an Paketadmin.&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman post mailman&amp;quot;&#039; &amp;gt; .forward+mailman&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman admin mailman&amp;quot;&#039; &amp;gt; .forward+mailman-admin&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman bounces mailman&amp;quot;&#039; &amp;gt; .forward+mailman-bounces&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman confirm mailman&amp;quot;&#039; &amp;gt; .forward+mailman-confirm&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman join mailman&amp;quot;&#039; &amp;gt; .forward+mailman-join&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman leave mailman&amp;quot;&#039; &amp;gt; .forward+mailman-leave&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman owner mailman&amp;quot;&#039; &amp;gt; .forward+mailman-owner&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman request mailman&amp;quot;&#039; &amp;gt; .forward+mailman-request&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman subscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-subscribe&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-unsubscribe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin XYZ00 erfolgt die Einrichtung hingegen per hsadmin (virtusertable) und hsadmin (aliases) so:&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Die bei den Mail-Adressen oben angegebenen Aliase werden mit [[hsadmin|hsadmin CLI]] angelegt.&lt;br /&gt;
&lt;br /&gt;
B) aliase:&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman post mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-admin&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman admin mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-bounces&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman bounces mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-confirm&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman confirm mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-join&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman join mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-leave&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman leave mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-owner&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman owner mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-request&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman request mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-subscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman subscribe mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-unsubscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
&lt;br /&gt;
Administriert werden Listen über http://lists.example.com/admin/&amp;lt;listenname&amp;gt; und entweder dem Listenpasswort oder dem Site-Passwort.&lt;br /&gt;
&lt;br /&gt;
Als erstes sollte man die Liste &amp;quot;mailman&amp;quot; selber abbonieren. (http://lists.example.com/admin/mailman)&lt;br /&gt;
&lt;br /&gt;
Bis auf das Anwenden der sitelist.cfg werden auch alle weiteren Listen nach obigem Schema angelegt, oder (bis auf das anlegen der virtusertable Einträge und aliase) über das Mailman Webinterface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war&#039;s. Mailman ist jetzt fertig installiert und müsste sogar funktionieren ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Feintuning == &lt;br /&gt;
&lt;br /&gt;
Wer will, kann auch noch etwas Platz sparen. Die normale Mailmaninstallation schlägt mit über 20 MB zu Buche...&lt;br /&gt;
&lt;br /&gt;
Mit den folgenden Tips kann man das auf ca. 6 MB reduzieren :)&lt;br /&gt;
&lt;br /&gt;
Es kann natürlich sein, dass ich zuviel lösche, aber bei mir funktioniert&#039;s. Wenn ihr also sicher(er) sein wollt, dass euch der Mailman nicht um die Ohren fliegt, macht das nicht!&lt;br /&gt;
&lt;br /&gt;
*  ~/mailman/cgi-bin und ~/mailman/icons können gelöscht werden, falls sie an andere Stelle kopiert worden sind.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/messages löschen.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/templates löschen (bis auf englisch).&lt;br /&gt;
* ~/mailman/tests kann, soweit ich das sehe, komplett gelöscht werden.&lt;br /&gt;
* Falls man koreanisch und japanisch nicht braucht, kann man folgendes machen:&lt;br /&gt;
* in ~/mailman/bin/paths.py, ~/mailman/cron/paths.py und ~/mailman/scripts/paths.py die Zeilen:&lt;br /&gt;
&lt;br /&gt;
 # In a normal interactive Python environment, the japanese.pth and korean.pth&lt;br /&gt;
 # files would be imported automatically.  But because we inhibit the importing&lt;br /&gt;
 # of the site module, we need to be explicit about importing these codecs.&lt;br /&gt;
 if not jaok:&lt;br /&gt;
     import japanese&lt;br /&gt;
 # As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean&lt;br /&gt;
 # codecs installed, however leave the first import in there in case an upgrade&lt;br /&gt;
 # changes this.&lt;br /&gt;
 if not kook:&lt;br /&gt;
     import korean&lt;br /&gt;
     import korean.aliases&lt;br /&gt;
&lt;br /&gt;
auskommentieren.&lt;br /&gt;
&lt;br /&gt;
Dann kann man ~/mailman/pythonlib/japanese, ~/mailman/pythonlib/korean, ~/mailman/pythonlib/korean.pth sowie ~/mailman/pythonlib/lib löschen.&lt;br /&gt;
   &lt;br /&gt;
Man kann auch noch die Debug-Informationen aus den binaries strippen:&lt;br /&gt;
&lt;br /&gt;
      strip ~/mailman/mail/mailman&lt;br /&gt;
      strip ~/mailman/cgi-bin/*&lt;br /&gt;
&lt;br /&gt;
Falls die CGIs nicht gesymlinkt wurden:&lt;br /&gt;
      strip ~/doms/lists.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multidomainfähigkeit ==&lt;br /&gt;
&lt;br /&gt;
Seit Mailman 2.x kann eine Mailman-Installation unter gewissen Einschränkungen für mehrere Domains verwendet werden. Hier soll kurz gezeigt werden, was geht und wie es geht.&lt;br /&gt;
&lt;br /&gt;
=== Anleitung ===&lt;br /&gt;
&lt;br /&gt;
Logischerweise muss das Webfrontend (die CGIs) auf allen Domains installiert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn man nun Mailinglisten mit newlist neu anlegt, muss man den Hostnamen für das Webfontend mit angeben, und zwar so:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist listenname@lists.example.com&lt;br /&gt;
&lt;br /&gt;
Es ist ggf. 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 lists.example.com sowohl als URL für das Webfrontend wie auch als Hostpart für Emailadressen verwendet. (Was für separate aufgeschaltete Domains wie z.B. lists.example.com gerade zutrifft.)&lt;br /&gt;
&lt;br /&gt;
Liegt das Frondend nicht auf der Maildomain ist es wichtig, dass ihr Mailman sagt, für welches die zugehörige Maildomain ist. Dies tut ihr in der Datei ~/mailman/Mailman/mm_cfg.py:&lt;br /&gt;
&lt;br /&gt;
Also z.B.&lt;br /&gt;
 DEFAULT_URL_HOST = &#039;www.example.com&#039;&lt;br /&gt;
 DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
 add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST)&lt;br /&gt;
&lt;br /&gt;
und&lt;br /&gt;
 add_virtualhost(&#039;www.zoopnet.de&#039;, &#039;lists.zoopnet.de&#039;)&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass Mailman per default davon ausgeht, dass alle Listen für die Domain example.com sind.&lt;br /&gt;
Alle weiteren 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. lists.zoopnet.de) zu.&lt;br /&gt;
&lt;br /&gt;
Tip von Raimund Specht: Lässt man den zweiten Parameter weg, also schreibt z.B. add_virtualhost(&#039;www.example.org&#039;), dann benutzt Mailman als Hostpart alles was nach dem ersten Punkt steht, hier also example.org als Maildomain.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Prinzipiell war&#039;s das. Man muss die Listeneinträge natürlich immer in die richtige virtusertable eintragen, und für gleichnamige Mailinglisten auf verschiedenen Domains (mailman@*) verschidene +Ergänzungen bzw. aliase verwenden. :)&lt;br /&gt;
&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
&lt;br /&gt;
Verschiedene Listen mit gleichem Namen (also z.B. liste@example1.com und liste@example2.com) sind mit Mailman 2.1 leider nicht möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips und Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== URL Änderungen ===&lt;br /&gt;
Nach URL Änderungen stimmen Links im Web-Interface nicht mehr und Listen werden nicht mehr angezeigt.&lt;br /&gt;
Es sind dann, zusätzlich zur Anpassung der mm_cfg.py, schon bestehende Listen und Archive mit folgendem Befehl zu aktualisieren:&lt;br /&gt;
 ~/mailman/bin/withlist -l -r fix_url &amp;lt;Listen_Name&amp;gt; -v -u &amp;lt;Neue_Url&amp;gt;&lt;br /&gt;
&amp;lt;Listen_Name&amp;gt; steht für die Mailingliste, die bearbeitet werden soll. &amp;lt;Neue_Url&amp;gt; für die neue URL/Webadresse des Webinterfaces.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Cron-Jobs zur Mailinglisten Verwaltung ===&lt;br /&gt;
&lt;br /&gt;
Folgende Cronjobs helfen bei der Verwaltung und sind User freundlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt; In Arbeit &amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referenzen ==&lt;br /&gt;
&lt;br /&gt;
Lösung zur installation als Domainadmin statt Paketadmin:&lt;br /&gt;
https://lists.hostsharing.net/archiv/support/2009-June/019414.html&lt;br /&gt;
&lt;br /&gt;
Ältere Anleitung für Installation als Domain-Admin: &amp;lt;http://lists.hostsharing.net/archiv/support/2005-January/012426.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Laufenlassen mit event:&lt;br /&gt;
Download und Doku auf &amp;lt;http://al000.hostsharing.net/mailman/mmhs/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;Mutter der Mailman-Installations-Doku&amp;quot; &amp;lt;http://al000.hostsharing.net/mailman/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;kleinen Tools&amp;quot; auf http://hs.andreasloesch.de, wobei das &#039;pac-mm-install&#039; wahrscheinlich nicht aktuell (genug) ist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Daz00-daniel</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2008</id>
		<title>Mailman Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2008"/>
		<updated>2009-10-06T11:06:50Z</updated>

		<summary type="html">&lt;p&gt;Daz00-daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Was noch jemand ergänzen müsste:&lt;br /&gt;
* Eine generische virtuser/alias Konfiguration finden und dokumentieren. &amp;lt;br&amp;gt; http://listes.rezo.net/how.php&amp;lt;br&amp;gt; http://www.gnu.org/software/mailman/mailman-install/mail-server.html&lt;br /&gt;
&lt;br /&gt;
* Skriptautomatisierung updaten &amp;lt;br&amp;gt; http://hs.andreasloesch.de/pac-mm-install&lt;br /&gt;
&lt;br /&gt;
== Installation == &lt;br /&gt;
&lt;br /&gt;
Installationsanleitung von Mailman&amp;lt;br&amp;gt;&lt;br /&gt;
(zuletzt getestet mit mailman-2.1.12)&lt;br /&gt;
&lt;br /&gt;
Vielen Dank an alle Benutzer die Verbesserungen beisteuern!&lt;br /&gt;
&lt;br /&gt;
Mailman kann als Paketadmin oder Paketuser installiert werden. Wenn er als Paketadmin installiert wird haben jedoch ausnahmslos alle Paketuser direkten Zugriff auf die Mailman Daten, und bei Sicherheitslücken in Mailman könnten potentiell Paketadminrechte übernommen werden.&lt;br /&gt;
&lt;br /&gt;
Zur Separation von Paketadminrechten und anderen Paketusern ist es vorzuziehen Mailman in einem Paketuser  Account zu installieren. (Bspw. xyz00-listen) Und diesem separaten User ggf mehrere lists.*.* Subdomains aufzuschalten.&lt;br /&gt;
&lt;br /&gt;
Vorteil der Installation als Paketuser ist, dass nur dieser direkten Zugriff auf die Mailmandaten hat und mailman ohne Paketadminrechte läuft. Während der Emailauslieferung werden (wie immer bei .forward) die Rechte des Zielusers angenommen. (So läuft das auch bei procmail.)&lt;br /&gt;
&lt;br /&gt;
Nachteil der Installation als Paketuser ist lediglich, dass bisher so nicht die Paketdomain mit dem SSL Zertifikat von Hostsharing genutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sourcen besorgen und entpacken ===&lt;br /&gt;
Unter http://www.gnu.org/software/mailman/ die aktuelle Software besorgen.&lt;br /&gt;
&lt;br /&gt;
 ~$ tar -xzvf mailman-2.1.12.tgz&lt;br /&gt;
&lt;br /&gt;
=== Log-Verzeichnis anlegen ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mkdir var/mailman&lt;br /&gt;
 ~$ chmod 02775 var/mailman&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
 ~$ mkdir -p mailman/var&lt;br /&gt;
 ~$ chmod 02775 mailman/var&lt;br /&gt;
&lt;br /&gt;
=== Kompilieren ===&lt;br /&gt;
braucht einige Optionen, die anzupassen sind.&lt;br /&gt;
&lt;br /&gt;
 ~$ cd mailman-2.1.12&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/users/listen/mailman \&lt;br /&gt;
              --with-username=XYZ00-listen \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/users/listen/mailman/var \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=XYZ00&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin wäre es:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/mailman \&lt;br /&gt;
              --with-username=XYZ00 \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/var/mailman \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=nogroup&lt;br /&gt;
(die \ bedeuten, dass alles in eine Zeile gehört, bzw. die Returns nicht interpretiert werden sollen.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ make&lt;br /&gt;
 ~/mailman-2.1.12$ make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Datenrechte prüfen ===&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber die Dateirechte prüfen (und ggf. korrigieren) lassen:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ cd ..      &lt;br /&gt;
 ~$ mailman/bin/check_perms -f&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== mm_cfg.py ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei editieren:&lt;br /&gt;
&lt;br /&gt;
 ~$ nano mailman/Mailman/mm_cfg.py&lt;br /&gt;
      &lt;br /&gt;
Eine Beispielkonfiguration für lists.example.com könnte so aussehen:&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
      ##################################################&lt;br /&gt;
      # Put YOUR site-specific settings below this line.&lt;br /&gt;
      # -*- python -*-&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_HOST_NAME = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_URL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_SERVER_LANGUAGE = &#039;de&#039;&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_URL_PATTERN = &#039;http://%s/&#039;&lt;br /&gt;
&lt;br /&gt;
In ~/mailman/Mailman/Defaults.py seht ihr, was man in mm_cfg.py alles einstellen kann.&lt;br /&gt;
&lt;br /&gt;
=== CGIs in die Domains ===&lt;br /&gt;
&lt;br /&gt;
CGIs in alle Domain-Verzeichnisse linken, auf denen das Mailman Webfrontend laufen soll.&lt;br /&gt;
&lt;br /&gt;
Beispielsweise:&lt;br /&gt;
 ~$ cd doms/listen.example.com/cgi&lt;br /&gt;
 ~/doms/listen.example.com/cgi$ ln -s ../../../mailman/cgi-bin mailman&lt;br /&gt;
 ~/doms/listen.example.com/cgi$ cd&lt;br /&gt;
&lt;br /&gt;
Wenn die Domains bei anderen Usern liegen ggf. kopieren:&lt;br /&gt;
 ~$ mkdir ~/doms/lists.example.com/cgi/mailman&lt;br /&gt;
 ~$ cp ../listen/mailman/cgi-bin/* doms/lists.example.com/cgi/mailman/&lt;br /&gt;
 ~$ chmod g-s ~/doms/example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
===  Icons in die Domains ===&lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/listen.example.com/htdocs&lt;br /&gt;
 ~/doms/listen.example.com/htdocs$ ln -s ../../../mailman/icons icons&lt;br /&gt;
 ~/doms/listen.example.com/cgi$ cd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
oder kopieren&lt;br /&gt;
&lt;br /&gt;
 ~$ cp -R mailman/icons doms/lists.example.com/htdocs/&lt;br /&gt;
&lt;br /&gt;
=== .htaccess ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond	%{REQUEST_URI}		!^/icons/&lt;br /&gt;
 RewriteRule	^(.*)$			/cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule	^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Mailman z.B. auf der www Domain läuft und unter www.example.com/mailman statt www.example.com/cgi-bin/mailman erreichbar sein soll, hilft folgendes in der ~/doms/example.com/subs/www/.htaccess:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteRule    ^mailman/(.*)$          /cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule    ^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
(Die DEFAULT_URL_PATTERN Zeile in der mm_cfg.py kann für diesen Fall einfach auskommentiert werden.)&lt;br /&gt;
&lt;br /&gt;
=== Passwort setzen ===&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/mmsitepass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cronjobs einrichten ===&lt;br /&gt;
&lt;br /&gt;
In die [[Cron |Crontab]] wird z.B. eingetragen:&lt;br /&gt;
&lt;br /&gt;
 * * * * *	~/mailman/bin/qrunner -o -r All&lt;br /&gt;
 47 * * * *	rm -f ~/var/mailman/logs/qrunner&lt;br /&gt;
(Queuebearbeitung alle Minute, löschen der Verarbeitungslogs in der 47ten Minute jeder Std.)&lt;br /&gt;
&lt;br /&gt;
Dies übernimmt die Funktion des qrunner-Dämons, der bei Mailman normalerweise laufen würde.&lt;br /&gt;
Das Logfile wird gelöscht, da es sonst sehr schnell sehr groß wird.&lt;br /&gt;
&lt;br /&gt;
Zudem müssen noch die Cronjobs aus ~/mailman/cron/crontab.in eingefügt werden. &lt;br /&gt;
&lt;br /&gt;
 crontab -l &amp;gt; mycronjobs.tmp&lt;br /&gt;
 cat ~/mailman/cron/crontab.in &amp;gt;&amp;gt; mycronjobs.tmp&lt;br /&gt;
 crontab mycronjobs.tmp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mailinglisten einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== Als erste Liste die &amp;quot;mailman&amp;quot; &amp;quot;site list&amp;quot; Einrichten ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;site list&amp;quot; mit dem Namen &amp;quot;mailman&amp;quot; ist die Mailingliste der lokalen Mailman Administratoren. Sie wird zur einwandfreien Funktion von Mailman benötigt.&lt;br /&gt;
&lt;br /&gt;
Neue Liste anlegen:&lt;br /&gt;
 ~$ mailman/bin/newlist mailman&lt;br /&gt;
 Enter the email of the person running the list: admin@xyz00.hostsharing.net&lt;br /&gt;
 Initial mailman password:&lt;br /&gt;
&lt;br /&gt;
Nur für die &amp;quot;mailman site list&amp;quot;: Konfigurationsvorgaben laden.&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/mailman/var/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/var/mailman/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
(Diese Konfigurationsdatei nicht auf eigene Listen anwenden.)&lt;br /&gt;
&lt;br /&gt;
=== Email Adressen einrichten === &lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser erfolgt die Einrichtung der Emailadressen per hsadmin (virtusertable) und .forward Dateien.&lt;br /&gt;
Anlegen mittels [[hsadmin|hsadmin CLI]].&lt;br /&gt;
&lt;br /&gt;
Beispiel für lists.example.com und Paketuser XYZ00-listen.&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
Im Homeverzeichnis des Users XYZ00-listen werden anschließend entsprechende .forward-Dateien angelegt.&lt;br /&gt;
&lt;br /&gt;
B) .forward Dateien:&lt;br /&gt;
 echo &#039;admin@XYZ00.hostsharing.net&#039; &amp;gt; .forward # Weiterleitung von cron Fehlern etc an Paketadmin.&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman post mailman&amp;quot;&#039; &amp;gt; .forward+mailman&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman admin mailman&amp;quot;&#039; &amp;gt; .forward+mailman-admin&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman bounces mailman&amp;quot;&#039; &amp;gt; .forward+mailman-bounces&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman confirm mailman&amp;quot;&#039; &amp;gt; .forward+mailman-confirm&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman join mailman&amp;quot;&#039; &amp;gt; .forward+mailman-join&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman leave mailman&amp;quot;&#039; &amp;gt; .forward+mailman-leave&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman owner mailman&amp;quot;&#039; &amp;gt; .forward+mailman-owner&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman request mailman&amp;quot;&#039; &amp;gt; .forward+mailman-request&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman subscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-subscribe&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-unsubscribe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin XYZ00 erfolgt die Einrichtung hingegen per hsadmin (virtusertable) und hsadmin (aliases) so:&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Die bei den Mail-Adressen oben angegebenen Aliase werden mit [[hsadmin|hsadmin CLI]] angelegt.&lt;br /&gt;
&lt;br /&gt;
B) aliase:&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman post mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-admin&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman admin mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-bounces&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman bounces mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-confirm&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman confirm mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-join&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman join mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-leave&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman leave mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-owner&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman owner mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-request&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman request mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-subscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman subscribe mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-unsubscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
&lt;br /&gt;
Administriert werden Listen über http://lists.example.com/admin/&amp;lt;listenname&amp;gt; und entweder dem Listenpasswort oder dem Site-Passwort.&lt;br /&gt;
&lt;br /&gt;
Als erstes sollte man die Liste &amp;quot;mailman&amp;quot; selber abbonieren. (http://lists.example.com/admin/mailman)&lt;br /&gt;
&lt;br /&gt;
Bis auf das Anwenden der sitelist.cfg werden auch alle weiteren Listen nach obigem Schema angelegt, oder (bis auf das anlegen der virtusertable Einträge und aliase) über das Mailman Webinterface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war&#039;s. Mailman ist jetzt fertig installiert und müsste sogar funktionieren ;)&lt;br /&gt;
&lt;br /&gt;
== Feintuning == &lt;br /&gt;
&lt;br /&gt;
Wer will, kann auch noch etwas Platz sparen. Die normale Mailmaninstallation schlägt mit über 20 MB zu Buche...&lt;br /&gt;
&lt;br /&gt;
Mit den folgenden Tips kann man das auf ca. 6 MB reduzieren :)&lt;br /&gt;
&lt;br /&gt;
Es kann natürlich sein, dass ich zuviel lösche, aber bei mir funktioniert&#039;s. Wenn ihr also sicher(er) sein wollt, dass euch der Mailman nicht um die Ohren fliegt, macht das nicht!&lt;br /&gt;
&lt;br /&gt;
*  ~/mailman/cgi-bin und ~/mailman/icons können gelöscht werden, falls sie an andere Stelle kopiert worden sind.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/messages löschen.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/templates löschen (bis auf englisch).&lt;br /&gt;
* ~/mailman/tests kann, soweit ich das sehe, komplett gelöscht werden.&lt;br /&gt;
* Falls man koreanisch und japanisch nicht braucht, kann man folgendes machen:&lt;br /&gt;
* in ~/mailman/bin/paths.py, ~/mailman/cron/paths.py und ~/mailman/scripts/paths.py die Zeilen:&lt;br /&gt;
&lt;br /&gt;
 # In a normal interactive Python environment, the japanese.pth and korean.pth&lt;br /&gt;
 # files would be imported automatically.  But because we inhibit the importing&lt;br /&gt;
 # of the site module, we need to be explicit about importing these codecs.&lt;br /&gt;
 if not jaok:&lt;br /&gt;
     import japanese&lt;br /&gt;
 # As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean&lt;br /&gt;
 # codecs installed, however leave the first import in there in case an upgrade&lt;br /&gt;
 # changes this.&lt;br /&gt;
 if not kook:&lt;br /&gt;
     import korean&lt;br /&gt;
     import korean.aliases&lt;br /&gt;
&lt;br /&gt;
auskommentieren.&lt;br /&gt;
&lt;br /&gt;
Dann kann man ~/mailman/pythonlib/japanese, ~/mailman/pythonlib/korean, ~/mailman/pythonlib/korean.pth sowie ~/mailman/pythonlib/lib löschen.&lt;br /&gt;
   &lt;br /&gt;
Man kann auch noch die Debug-Informationen aus den binaries strippen:&lt;br /&gt;
&lt;br /&gt;
      strip ~/mailman/mail/mailman&lt;br /&gt;
      strip ~/mailman/cgi-bin/*&lt;br /&gt;
&lt;br /&gt;
Falls die CGIs nicht gesymlinkt wurden:&lt;br /&gt;
      strip ~/doms/lists.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
== Multidomainfähigkeit ==&lt;br /&gt;
&lt;br /&gt;
Seit Mailman 2.x kann eine Mailman-Installation unter gewissen Einschränkungen für mehrere Domains verwendet werden. Hier soll kurz gezeigt werden, was geht und wie es geht.&lt;br /&gt;
&lt;br /&gt;
=== Anleitung ===&lt;br /&gt;
&lt;br /&gt;
Logischerweise muss das Webfrontend (die CGIs) auf allen Domains installiert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn man nun Mailinglisten mit newlist neu anlegt, muss man den Hostnamen für das Webfontend mit angeben, und zwar so:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist listenname@lists.example.com&lt;br /&gt;
&lt;br /&gt;
Es ist ggf. 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 lists.example.com sowohl als URL für das Webfrontend wie auch als Hostpart für Emailadressen verwendet. (Was für separate aufgeschaltete Domains wie z.B. lists.example.com gerade zutrifft.)&lt;br /&gt;
&lt;br /&gt;
Liegt das Frondend nicht auf der Maildomain ist es wichtig, dass ihr Mailman sagt, für welches die zugehörige Maildomain ist. Dies tut ihr in der Datei ~/mailman/Mailman/mm_cfg.py:&lt;br /&gt;
&lt;br /&gt;
Also z.B.&lt;br /&gt;
 DEFAULT_URL_HOST = &#039;www.example.com&#039;&lt;br /&gt;
 DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
 add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST)&lt;br /&gt;
&lt;br /&gt;
und&lt;br /&gt;
 add_virtualhost(&#039;www.zoopnet.de&#039;, &#039;listen.zoopnet.de&#039;)&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass Mailman per default davon ausgeht, dass alle Listen für die Domain example.com sind.&lt;br /&gt;
Alle weiteren 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.&lt;br /&gt;
&lt;br /&gt;
Tip von Raimund Specht: Lässt man den zweiten Parameter weg, also schreibt z.B. add_virtualhost(&#039;www.example.org&#039;), dann benutzt Mailman als Hostpart alles was nach dem ersten Punkt steht, hier also example.org als Maildomain.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Prinzipiell war&#039;s das. Man muss die Listeneinträge natürlich immer in die richtige virtusertable eintragen, und für gleichnamige Mailinglisten auf verschiedenen Domains (mailman@*) verschidene +Ergänzungen bzw. aliase verwenden. :)&lt;br /&gt;
&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
&lt;br /&gt;
Verschiedene Listen mit gleichem Namen (also z.B. liste@example1.com und liste@example2.com) sind mit Mailman 2.1 leider nicht möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips und Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== URL Änderungen ===&lt;br /&gt;
Nach URL Änderungen stimmen Links im Web-Interface nicht mehr und Listen werden nicht mehr angezeigt.&lt;br /&gt;
Es sind dann, zusätzlich zur Anpassung der mm_cfg.py, schon bestehende Listen und Archive mit folgendem Befehl zu aktualisieren:&lt;br /&gt;
 ~/mailman/bin/withlist -l -r fix_url &amp;lt;Listen_Name&amp;gt; -v -u &amp;lt;Neue_Url&amp;gt;&lt;br /&gt;
&amp;lt;Listen_Name&amp;gt; steht für die Mailingliste, die bearbeitet werden soll. &amp;lt;Neue_Url&amp;gt; für die neue URL/Webadresse des Webinterfaces.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Cron-Jobs zur Mailinglisten Verwaltung ===&lt;br /&gt;
&lt;br /&gt;
Folgende Cronjobs helfen bei der Verwaltung und sind User freundlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt; In Arbeit &amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referenzen =&lt;br /&gt;
&lt;br /&gt;
Lösung zur installation als Domainadmin statt Paketadmin:&lt;br /&gt;
https://lists.hostsharing.net/archiv/support/2009-June/019414.html&lt;br /&gt;
&lt;br /&gt;
ältere Anleitung für Installation als Dom-Admin: &amp;lt;http://lists.hostsharing.net/archiv/support/2005-January/012426.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laufenlassen mit event:&lt;br /&gt;
Download und Doku auf &amp;lt;http://al000.hostsharing.net/mailman/mmhs/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;Mutter der Mailman-Installations-Doku&amp;quot; &amp;lt;http://al000.hostsharing.net/mailman/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;kleinen Tools&amp;quot; auf http://hs.andreasloesch.de, wobei das &#039;pac-mm-install&#039; wahrscheinlich nicht aktuell (genug) ist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Daz00-daniel</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2007</id>
		<title>Mailman Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2007"/>
		<updated>2009-10-06T11:05:52Z</updated>

		<summary type="html">&lt;p&gt;Daz00-daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Was noch jemand ergänzen müsste:&lt;br /&gt;
* Eine generische virtuser/alias Konfiguration finden und dokumentieren. &amp;lt;br&amp;gt; http://listes.rezo.net/how.php&amp;lt;br&amp;gt; http://www.gnu.org/software/mailman/mailman-install/mail-server.html&lt;br /&gt;
&lt;br /&gt;
* Skriptautomatisierung updaten &amp;lt;br&amp;gt; http://hs.andreasloesch.de/pac-mm-install&lt;br /&gt;
&lt;br /&gt;
== Installation == &lt;br /&gt;
&lt;br /&gt;
Installationsanleitung von Mailman&amp;lt;br&amp;gt;&lt;br /&gt;
(zuletzt getestet mit mailman-2.1.12)&lt;br /&gt;
&lt;br /&gt;
Vielen Dank an alle Benutzer die Verbesserungen beisteuern!&lt;br /&gt;
&lt;br /&gt;
Mailman kann als Paketadmin oder Paketuser installiert werden. Wenn er als Paketadmin installiert wird haben jedoch ausnahmslos alle Paketuser direkten Zugriff auf die Mailman Daten, und bei Sicherheitslücken in Mailman könnten potentiell Paketadminrechte übernommen werden.&lt;br /&gt;
&lt;br /&gt;
Zur Separation von Paketadminrechten und anderen Paketusern ist es vorzuziehen Mailman in einem Paketuser  Account zu installieren. (Bspw. xyz00-listen) Und diesem separaten User ggf mehrere lists.*.* Subdomains aufzuschalten.&lt;br /&gt;
&lt;br /&gt;
Vorteil der Installation als Paketuser ist, dass nur dieser direkten Zugriff auf die Mailmandaten hat und mailman ohne Paketadminrechte läuft. Während der Emailauslieferung werden (wie immer bei .forward) die Rechte des Zielusers angenommen. (So läuft das auch bei procmail.)&lt;br /&gt;
&lt;br /&gt;
Nachteil der Installation als Paketuser ist lediglich, dass bisher so nicht die Paketdomain mit dem SSL Zertifikat von Hostsharing genutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sourcen besorgen und entpacken ===&lt;br /&gt;
Unter http://www.gnu.org/software/mailman/ die aktuelle Software besorgen.&lt;br /&gt;
&lt;br /&gt;
 ~$ tar -xzvf mailman-2.1.12.tgz&lt;br /&gt;
&lt;br /&gt;
=== Log-Verzeichnis anlegen ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mkdir var/mailman&lt;br /&gt;
 ~$ chmod 02775 var/mailman&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
 ~$ mkdir -p mailman/var&lt;br /&gt;
 ~$ chmod 02775 mailman/var&lt;br /&gt;
&lt;br /&gt;
=== Kompilieren ===&lt;br /&gt;
braucht einige Optionen, die anzupassen sind.&lt;br /&gt;
&lt;br /&gt;
 ~$ cd mailman-2.1.12&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/users/listen/mailman \&lt;br /&gt;
              --with-username=XYZ00-listen \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/users/listen/mailman/var \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=XYZ00&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin wäre es:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/mailman \&lt;br /&gt;
              --with-username=XYZ00 \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/var/mailman \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=nogroup&lt;br /&gt;
(die \ bedeuten, dass alles in eine Zeile gehört, bzw. die Returns nicht interpretiert werden sollen.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ make&lt;br /&gt;
 ~/mailman-2.1.12$ make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Datenrechte prüfen ===&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber die Dateirechte prüfen (und ggf. korrigieren) lassen:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ cd ..      &lt;br /&gt;
 ~$ mailman/bin/check_perms -f&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== mm_cfg.py ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei editieren:&lt;br /&gt;
&lt;br /&gt;
 ~$ nano mailman/Mailman/mm_cfg.py&lt;br /&gt;
      &lt;br /&gt;
Eine Beispielkonfiguration für lists.example.com könnte so aussehen:&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
      ##################################################&lt;br /&gt;
      # Put YOUR site-specific settings below this line.&lt;br /&gt;
      # -*- python -*-&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_HOST_NAME = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_URL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_SERVER_LANGUAGE = &#039;de&#039;&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_URL_PATTERN = &#039;http://%s/&#039;&lt;br /&gt;
&lt;br /&gt;
In ~/mailman/Mailman/Defaults.py seht ihr, was man in mm_cfg.py alles einstellen kann.&lt;br /&gt;
&lt;br /&gt;
=== CGIs in die Domains ===&lt;br /&gt;
&lt;br /&gt;
CGIs in alle Domain-Verzeichnisse linken, auf denen das Mailman Webfrontend laufen soll.&lt;br /&gt;
&lt;br /&gt;
Beispielsweise:&lt;br /&gt;
 ~$ cd doms/listen.example.com/cgi&lt;br /&gt;
 ~/doms/listen.example.com/cgi$ ln -s ../../../mailman/cgi-bin mailman&lt;br /&gt;
 ~/doms/listen.example.com/cgi$ cd&lt;br /&gt;
&lt;br /&gt;
Wenn die Domains bei anderen Usern liegen ggf. kopieren:&lt;br /&gt;
 ~$ mkdir ~/doms/lists.example.com/cgi/mailman&lt;br /&gt;
 ~$ cp ../listen/mailman/cgi-bin/* doms/lists.example.com/cgi/mailman/&lt;br /&gt;
 ~$ chmod g-s ~/doms/example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
===  Icons in die Domains ===&lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/listen.example.com/htdocs&lt;br /&gt;
 ~/doms/listen.example.com/htdocs$ ln -s ../../../mailman/icons icons&lt;br /&gt;
 ~/doms/listen.example.com/cgi$ cd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
oder kopieren&lt;br /&gt;
&lt;br /&gt;
 ~$ cp -R mailman/icons doms/lists.example.com/htdocs/&lt;br /&gt;
&lt;br /&gt;
=== .htaccess ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond	%{REQUEST_URI}		!^/icons/&lt;br /&gt;
 RewriteRule	^(.*)$			/cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule	^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Mailman z.B. auf der www Domain läuft und unter www.example.com/mailman statt www.example.com/cgi-bin/mailman erreichbar sein soll, hilft folgendes in der ~/doms/example.com/subs/www/.htaccess:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteRule    ^mailman/(.*)$          /cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule    ^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
(Die DEFAULT_URL_PATTERN Zeile in der mm_cfg.py kann für diesen Fall einfach auskommentiert werden.)&lt;br /&gt;
&lt;br /&gt;
=== Passwort setzen ===&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/mmsitepass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cronjobs einrichten ===&lt;br /&gt;
&lt;br /&gt;
In die [[Cron |Crontab]] wird z.B. eingetragen:&lt;br /&gt;
&lt;br /&gt;
 * * * * *	~/mailman/bin/qrunner -o -r All&lt;br /&gt;
 47 * * * *	rm -f ~/var/mailman/logs/qrunner&lt;br /&gt;
(Queuebearbeitung alle Minute, löschen der Verarbeitungslogs in der 47ten Minute jeder Std.)&lt;br /&gt;
&lt;br /&gt;
Dies übernimmt die Funktion des qrunner-Dämons, der bei Mailman normalerweise laufen würde.&lt;br /&gt;
Das Logfile wird gelöscht, da es sonst sehr schnell sehr groß wird.&lt;br /&gt;
&lt;br /&gt;
Zudem müssen noch die Cronjobs aus ~/mailman/cron/crontab.in eingefügt werden. &lt;br /&gt;
&lt;br /&gt;
 crontab -l &amp;gt; mycronjobs.tmp&lt;br /&gt;
 cat ~/mailman/cron/crontab.in &amp;gt;&amp;gt; mycronjobs.tmp&lt;br /&gt;
 crontab mycronjobs.tmp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mailinglisten einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== Als erste Liste die &amp;quot;mailman&amp;quot; &amp;quot;site list&amp;quot; Einrichten ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;site list&amp;quot; mit dem Namen &amp;quot;mailman&amp;quot; ist die Mailingliste der lokalen Mailman Administratoren. Sie wird zur einwandfreien Funktion von Mailman benötigt.&lt;br /&gt;
&lt;br /&gt;
Neue Liste anlegen:&lt;br /&gt;
 ~$ mailman/bin/newlist mailman&lt;br /&gt;
 Enter the email of the person running the list: admin@xyz00.hostsharing.net&lt;br /&gt;
 Initial mailman password:&lt;br /&gt;
&lt;br /&gt;
Nur für die &amp;quot;mailman site list&amp;quot;: Konfigurationsvorgaben laden.&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/mailman/var/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/var/mailman/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
(Diese Konfigurationsdatei nicht auf eigene Listen anwenden.)&lt;br /&gt;
&lt;br /&gt;
=== Email Adressen einrichten === &lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser erfolgt die Einrichtung der Emailadressen per hsadmin (virtusertable) und .forward Dateien.&lt;br /&gt;
Anlegen mittels [[hsadmin|hsadmin CLI]].&lt;br /&gt;
&lt;br /&gt;
Beispiel für lists.example.com und Paketuser XYZ00-listen.&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
Im Homeverzeichnis des Users XYZ00-listen werden anschließend entsprechende .forward-Dateien angelegt.&lt;br /&gt;
&lt;br /&gt;
B) .forward Dateien:&lt;br /&gt;
 echo &#039;admin@XYZ00.hostsharing.net&#039; &amp;gt; .forward # Weiterleitung von cron Fehlern etc an Paketadmin.&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman post mailman&amp;quot;&#039; &amp;gt; .forward+mailman&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman admin mailman&amp;quot;&#039; &amp;gt; .forward+mailman-admin&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman bounces mailman&amp;quot;&#039; &amp;gt; .forward+mailman-bounces&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman confirm mailman&amp;quot;&#039; &amp;gt; .forward+mailman-confirm&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman join mailman&amp;quot;&#039; &amp;gt; .forward+mailman-join&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman leave mailman&amp;quot;&#039; &amp;gt; .forward+mailman-leave&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman owner mailman&amp;quot;&#039; &amp;gt; .forward+mailman-owner&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman request mailman&amp;quot;&#039; &amp;gt; .forward+mailman-request&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman subscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-subscribe&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-unsubscribe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin XYZ00 erfolgt die Einrichtung hingegen per hsadmin (virtusertable) und hsadmin (aliases) so:&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Die bei den Mail-Adressen oben angegebenen Aliase werden mit [[hsadmin|hsadmin CLI]] angelegt.&lt;br /&gt;
&lt;br /&gt;
B) aliase:&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman post mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-admin&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman admin mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-bounces&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman bounces mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-confirm&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman confirm mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-join&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman join mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-leave&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman leave mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-owner&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman owner mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-request&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman request mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-subscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman subscribe mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-unsubscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
&lt;br /&gt;
Administriert werden Listen über http://lists.example.com/admin/&amp;lt;listenname&amp;gt; und entweder dem Listenpasswort oder dem Site-Passwort.&lt;br /&gt;
&lt;br /&gt;
Als erstes sollte man die Liste &amp;quot;mailman&amp;quot; selber abbonieren. (http://lists.example.com/admin/mailman)&lt;br /&gt;
&lt;br /&gt;
Bis auf das Anwenden der sitelist.cfg werden auch alle weiteren Listen nach obigem Schema angelegt, oder (bis auf das anlegen der virtusertable Einträge und aliase) über das Mailman Webinterface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war&#039;s. Mailman ist jetzt fertig installiert und müsste sogar funktionieren ;)&lt;br /&gt;
&lt;br /&gt;
== Feintuning == &lt;br /&gt;
&lt;br /&gt;
Wer will, kann auch noch etwas Platz sparen. Die normale Mailmaninstallation schlägt mit über 20 MB zu Buche...&lt;br /&gt;
&lt;br /&gt;
Mit den folgenden Tips kann man das auf ca. 6 MB reduzieren :)&lt;br /&gt;
&lt;br /&gt;
Es kann natürlich sein, dass ich zuviel lösche, aber bei mir funktioniert&#039;s. Wenn ihr also sicher(er) sein wollt, dass euch der Mailman nicht um die Ohren fliegt, macht das nicht!&lt;br /&gt;
&lt;br /&gt;
*  ~/mailman/cgi-bin und ~/mailman/icons können gelöscht werden, falls sie an andere Stelle kopiert worden sind.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/messages löschen.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/templates löschen (bis auf englisch).&lt;br /&gt;
* ~/mailman/tests kann, soweit ich das sehe, komplett gelöscht werden.&lt;br /&gt;
* Falls man koreanisch und japanisch nicht braucht, kann man folgendes machen:&lt;br /&gt;
* in ~/mailman/bin/paths.py, ~/mailman/cron/paths.py und ~/mailman/scripts/paths.py die Zeilen:&lt;br /&gt;
&lt;br /&gt;
 # In a normal interactive Python environment, the japanese.pth and korean.pth&lt;br /&gt;
 # files would be imported automatically.  But because we inhibit the importing&lt;br /&gt;
 # of the site module, we need to be explicit about importing these codecs.&lt;br /&gt;
 if not jaok:&lt;br /&gt;
     import japanese&lt;br /&gt;
  As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean&lt;br /&gt;
 # codecs installed, however leave the first import in there in case an upgrade&lt;br /&gt;
 # changes this.&lt;br /&gt;
 if not kook:&lt;br /&gt;
     import korean&lt;br /&gt;
     import korean.aliases&lt;br /&gt;
&lt;br /&gt;
auskommentieren.&lt;br /&gt;
&lt;br /&gt;
Dann kann man ~/mailman/pythonlib/japanese, ~/mailman/pythonlib/korean, ~/mailman/pythonlib/korean.pth sowie ~/mailman/pythonlib/lib löschen.&lt;br /&gt;
   &lt;br /&gt;
Man kann auch noch die Debug-Informationen aus den binaries strippen:&lt;br /&gt;
&lt;br /&gt;
      strip ~/mailman/mail/mailman&lt;br /&gt;
      strip ~/mailman/cgi-bin/*&lt;br /&gt;
&lt;br /&gt;
Falls die CGIs nicht gesymlinkt wurden:&lt;br /&gt;
      strip ~/doms/lists.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
== Multidomainfähigkeit ==&lt;br /&gt;
&lt;br /&gt;
Seit Mailman 2.x kann eine Mailman-Installation unter gewissen Einschränkungen für mehrere Domains verwendet werden. Hier soll kurz gezeigt werden, was geht und wie es geht.&lt;br /&gt;
&lt;br /&gt;
=== Anleitung ===&lt;br /&gt;
&lt;br /&gt;
Logischerweise muss das Webfrontend (die CGIs) auf allen Domains installiert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn man nun Mailinglisten mit newlist neu anlegt, muss man den Hostnamen für das Webfontend mit angeben, und zwar so:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist listenname@lists.example.com&lt;br /&gt;
&lt;br /&gt;
Es ist ggf. 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 lists.example.com sowohl als URL für das Webfrontend wie auch als Hostpart für Emailadressen verwendet. (Was für separate aufgeschaltete Domains wie z.B. lists.example.com gerade zutrifft.)&lt;br /&gt;
&lt;br /&gt;
Liegt das Frondend nicht auf der Maildomain ist es wichtig, dass ihr Mailman sagt, für welches die zugehörige Maildomain ist. Dies tut ihr in der Datei ~/mailman/Mailman/mm_cfg.py:&lt;br /&gt;
&lt;br /&gt;
Also z.B.&lt;br /&gt;
 DEFAULT_URL_HOST = &#039;www.example.com&#039;&lt;br /&gt;
 DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
 add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST)&lt;br /&gt;
&lt;br /&gt;
und&lt;br /&gt;
 add_virtualhost(&#039;www.zoopnet.de&#039;, &#039;listen.zoopnet.de&#039;)&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass Mailman per default davon ausgeht, dass alle Listen für die Domain example.com sind.&lt;br /&gt;
Alle weiteren 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.&lt;br /&gt;
&lt;br /&gt;
Tip von Raimund Specht: Lässt man den zweiten Parameter weg, also schreibt z.B. add_virtualhost(&#039;www.example.org&#039;), dann benutzt Mailman als Hostpart alles was nach dem ersten Punkt steht, hier also example.org als Maildomain.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Prinzipiell war&#039;s das. Man muss die Listeneinträge natürlich immer in die richtige virtusertable eintragen, und für gleichnamige Mailinglisten auf verschiedenen Domains (mailman@*) verschidene +Ergänzungen bzw. aliase verwenden. :)&lt;br /&gt;
&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
&lt;br /&gt;
Verschiedene Listen mit gleichem Namen (also z.B. liste@example1.com und liste@example2.com) sind mit Mailman 2.1 leider nicht möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips und Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== URL Änderungen ===&lt;br /&gt;
Nach URL Änderungen stimmen Links im Web-Interface nicht mehr und Listen werden nicht mehr angezeigt.&lt;br /&gt;
Es sind dann, zusätzlich zur Anpassung der mm_cfg.py, schon bestehende Listen und Archive mit folgendem Befehl zu aktualisieren:&lt;br /&gt;
 ~/mailman/bin/withlist -l -r fix_url &amp;lt;Listen_Name&amp;gt; -v -u &amp;lt;Neue_Url&amp;gt;&lt;br /&gt;
&amp;lt;Listen_Name&amp;gt; steht für die Mailingliste, die bearbeitet werden soll. &amp;lt;Neue_Url&amp;gt; für die neue URL/Webadresse des Webinterfaces.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Cron-Jobs zur Mailinglisten Verwaltung ===&lt;br /&gt;
&lt;br /&gt;
Folgende Cronjobs helfen bei der Verwaltung und sind User freundlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt; In Arbeit &amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referenzen =&lt;br /&gt;
&lt;br /&gt;
Lösung zur installation als Domainadmin statt Paketadmin:&lt;br /&gt;
https://lists.hostsharing.net/archiv/support/2009-June/019414.html&lt;br /&gt;
&lt;br /&gt;
ältere Anleitung für Installation als Dom-Admin: &amp;lt;http://lists.hostsharing.net/archiv/support/2005-January/012426.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laufenlassen mit event:&lt;br /&gt;
Download und Doku auf &amp;lt;http://al000.hostsharing.net/mailman/mmhs/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;Mutter der Mailman-Installations-Doku&amp;quot; &amp;lt;http://al000.hostsharing.net/mailman/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;kleinen Tools&amp;quot; auf http://hs.andreasloesch.de, wobei das &#039;pac-mm-install&#039; wahrscheinlich nicht aktuell (genug) ist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Daz00-daniel</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2006</id>
		<title>Mailman Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=2006"/>
		<updated>2009-10-06T11:03:52Z</updated>

		<summary type="html">&lt;p&gt;Daz00-daniel: RewriteCond ergänzt, damit Icons in Web-Frontend sichtbar bzw korrekt aufgelöst werden&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Was noch jemand ergänzen müsste:&lt;br /&gt;
* Eine generische virtuser/alias Konfiguration finden und dokumentieren. &amp;lt;br&amp;gt; http://listes.rezo.net/how.php&amp;lt;br&amp;gt; http://www.gnu.org/software/mailman/mailman-install/mail-server.html&lt;br /&gt;
&lt;br /&gt;
* Skriptautomatisierung updaten &amp;lt;br&amp;gt; http://hs.andreasloesch.de/pac-mm-install&lt;br /&gt;
&lt;br /&gt;
== Installation == &lt;br /&gt;
&lt;br /&gt;
Installationsanleitung von Mailman&amp;lt;br&amp;gt;&lt;br /&gt;
(zuletzt getestet mit mailman-2.1.12)&lt;br /&gt;
&lt;br /&gt;
Vielen Dank an alle Benutzer die Verbesserungen beisteuern!&lt;br /&gt;
&lt;br /&gt;
Mailman kann als Paketadmin oder Paketuser installiert werden. Wenn er als Paketadmin installiert wird haben jedoch ausnahmslos alle Paketuser direkten Zugriff auf die Mailman Daten, und bei Sicherheitslücken in Mailman könnten potentiell Paketadminrechte übernommen werden.&lt;br /&gt;
&lt;br /&gt;
Zur Separation von Paketadminrechten und anderen Paketusern ist es vorzuziehen Mailman in einem Paketuser  Account zu installieren. (Bspw. xyz00-listen) Und diesem separaten User ggf mehrere lists.*.* Subdomains aufzuschalten.&lt;br /&gt;
&lt;br /&gt;
Vorteil der Installation als Paketuser ist, dass nur dieser direkten Zugriff auf die Mailmandaten hat und mailman ohne Paketadminrechte läuft. Während der Emailauslieferung werden (wie immer bei .forward) die Rechte des Zielusers angenommen. (So läuft das auch bei procmail.)&lt;br /&gt;
&lt;br /&gt;
Nachteil der Installation als Paketuser ist lediglich, dass bisher so nicht die Paketdomain mit dem SSL Zertifikat von Hostsharing genutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sourcen besorgen und entpacken ===&lt;br /&gt;
Unter http://www.gnu.org/software/mailman/ die aktuelle Software besorgen.&lt;br /&gt;
&lt;br /&gt;
 ~$ tar -xzvf mailman-2.1.12.tgz&lt;br /&gt;
&lt;br /&gt;
=== Log-Verzeichnis anlegen ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mkdir var/mailman&lt;br /&gt;
 ~$ chmod 02775 var/mailman&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
 ~$ mkdir -p mailman/var&lt;br /&gt;
 ~$ chmod 02775 mailman/var&lt;br /&gt;
&lt;br /&gt;
=== Kompilieren ===&lt;br /&gt;
braucht einige Optionen, die anzupassen sind.&lt;br /&gt;
&lt;br /&gt;
 ~$ cd mailman-2.1.12&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/users/listen/mailman \&lt;br /&gt;
              --with-username=XYZ00-listen \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/users/listen/mailman/var \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=XYZ00&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin wäre es:&lt;br /&gt;
      ~/mailman-2.1.12$ ./configure --prefix=/home/pacs/XYZ00/mailman \&lt;br /&gt;
              --with-username=XYZ00 \&lt;br /&gt;
              --with-groupname=XYZ00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/XYZ00/var/mailman \&lt;br /&gt;
              --with-cgi-gid=XYZ00 \&lt;br /&gt;
              --with-mail-gid=nogroup&lt;br /&gt;
(die \ bedeuten, dass alles in eine Zeile gehört, bzw. die Returns nicht interpretiert werden sollen.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ make&lt;br /&gt;
 ~/mailman-2.1.12$ make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Datenrechte prüfen ===&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber die Dateirechte prüfen (und ggf. korrigieren) lassen:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.12$ cd ..      &lt;br /&gt;
 ~$ mailman/bin/check_perms -f&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== mm_cfg.py ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei editieren:&lt;br /&gt;
&lt;br /&gt;
 ~$ nano mailman/Mailman/mm_cfg.py&lt;br /&gt;
      &lt;br /&gt;
Eine Beispielkonfiguration für lists.example.com könnte so aussehen:&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
      ##################################################&lt;br /&gt;
      # Put YOUR site-specific settings below this line.&lt;br /&gt;
      # -*- python -*-&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_HOST_NAME = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      DEFAULT_URL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
      add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_SERVER_LANGUAGE = &#039;de&#039;&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_URL_PATTERN = &#039;http://%s/&#039;&lt;br /&gt;
&lt;br /&gt;
In ~/mailman/Mailman/Defaults.py seht ihr, was man in mm_cfg.py alles einstellen kann.&lt;br /&gt;
&lt;br /&gt;
=== CGIs in die Domains ===&lt;br /&gt;
&lt;br /&gt;
CGIs in alle Domain-Verzeichnisse linken, auf denen das Mailman Webfrontend laufen soll.&lt;br /&gt;
&lt;br /&gt;
Beispielsweise:&lt;br /&gt;
 ~$ cd doms/listen.example.com/cgi&lt;br /&gt;
 ~/doms/listen.example.com/cgi$ ln -s ../../../mailman/cgi-bin mailman&lt;br /&gt;
 ~/doms/listen.example.com/cgi$ cd&lt;br /&gt;
&lt;br /&gt;
Wenn die Domains bei anderen Usern liegen ggf. kopieren:&lt;br /&gt;
 ~$ mkdir ~/doms/lists.example.com/cgi/mailman&lt;br /&gt;
 ~$ cp ../listen/mailman/cgi-bin/* doms/lists.example.com/cgi/mailman/&lt;br /&gt;
 ~$ chmod g-s ~/doms/example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
===  Icons in die Domains ===&lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/listen.example.com/htdocs&lt;br /&gt;
 ~/doms/listen.example.com/htdocs$ ln -s ../../../mailman/icons icons&lt;br /&gt;
 ~/doms/listen.example.com/cgi$ cd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
oder kopieren&lt;br /&gt;
&lt;br /&gt;
 ~$ cp -R mailman/icons doms/lists.example.com/htdocs/&lt;br /&gt;
&lt;br /&gt;
=== .htaccess ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond	%{REQUEST_URI}		!^/icons/&lt;br /&gt;
 RewriteRule	^(.*)$			/cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule	^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Mailman z.B. auf der www Domain läuft und unter www.example.com/mailman statt www.example.com/cgi-bin/mailman erreichbar sein soll, hilft folgendes in der ~/doms/example.com/subs/www/.htaccess:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteRule    ^mailman/(.*)$          /cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule    ^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
(Die DEFAULT_URL_PATTERN Zeile in der mm_cfg.py kann für diesen Fall einfach auskommentiert werden.)&lt;br /&gt;
&lt;br /&gt;
=== Passwort setzen ===&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/mmsitepass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cronjobs einrichten ===&lt;br /&gt;
&lt;br /&gt;
In die [[Cron |Crontab]] wird z.B. eingetragen:&lt;br /&gt;
&lt;br /&gt;
 * * * * *	~/mailman/bin/qrunner -o -r All&lt;br /&gt;
 47 * * * *	rm -f ~/var/mailman/logs/qrunner&lt;br /&gt;
(Queuebearbeitung alle Minute, löschen der Verarbeitungslogs in der 47ten Minute jeder Std.)&lt;br /&gt;
&lt;br /&gt;
Dies übernimmt die Funktion des qrunner-Dämons, der bei Mailman normalerweise laufen würde.&lt;br /&gt;
Das Logfile wird gelöscht, da es sonst sehr schnell sehr groß wird.&lt;br /&gt;
&lt;br /&gt;
Zudem müssen noch die Cronjobs aus ~/mailman/cron/crontab.in eingefügt werden. &lt;br /&gt;
&lt;br /&gt;
 crontab -l &amp;gt; mycronjobs.tmp&lt;br /&gt;
 cat ~/mailman/cron/crontab.in &amp;gt;&amp;gt; mycronjobs.tmp&lt;br /&gt;
 crontab mycronjobs.tmp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mailinglisten einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== Als erste Liste die &amp;quot;mailman&amp;quot; &amp;quot;site list&amp;quot; Einrichten ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;site list&amp;quot; mit dem Namen &amp;quot;mailman&amp;quot; ist die Mailingliste der lokalen Mailman Administratoren. Sie wird zur einwandfreien Funktion von Mailman benötigt.&lt;br /&gt;
&lt;br /&gt;
Neue Liste anlegen:&lt;br /&gt;
 ~$ mailman/bin/newlist mailman&lt;br /&gt;
 Enter the email of the person running the list: admin@xyz00.hostsharing.net&lt;br /&gt;
 Initial mailman password:&lt;br /&gt;
&lt;br /&gt;
Nur für die &amp;quot;mailman site list&amp;quot;: Konfigurationsvorgaben laden.&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/mailman/var/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin:&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/var/mailman/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
(Diese Konfigurationsdatei nicht auf eigene Listen anwenden.)&lt;br /&gt;
&lt;br /&gt;
=== Email Adressen einrichten === &lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser erfolgt die Einrichtung der Emailadressen per hsadmin (virtusertable) und .forward Dateien.&lt;br /&gt;
Anlegen mittels [[hsadmin|hsadmin CLI]].&lt;br /&gt;
&lt;br /&gt;
Beispiel für lists.example.com und Paketuser XYZ00-listen.&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-listen+mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
Im Homeverzeichnis des Users XYZ00-listen werden anschließend entsprechende .forward-Dateien angelegt.&lt;br /&gt;
&lt;br /&gt;
B) .forward Dateien:&lt;br /&gt;
 echo &#039;admin@XYZ00.hostsharing.net&#039; &amp;gt; .forward # Weiterleitung von cron Fehlern etc an Paketadmin.&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman post mailman&amp;quot;&#039; &amp;gt; .forward+mailman&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman admin mailman&amp;quot;&#039; &amp;gt; .forward+mailman-admin&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman bounces mailman&amp;quot;&#039; &amp;gt; .forward+mailman-bounces&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman confirm mailman&amp;quot;&#039; &amp;gt; .forward+mailman-confirm&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman join mailman&amp;quot;&#039; &amp;gt; .forward+mailman-join&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman leave mailman&amp;quot;&#039; &amp;gt; .forward+mailman-leave&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman owner mailman&amp;quot;&#039; &amp;gt; .forward+mailman-owner&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman request mailman&amp;quot;&#039; &amp;gt; .forward+mailman-request&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman subscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-subscribe&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/XYZ00/users/listen/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-unsubscribe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin XYZ00 erfolgt die Einrichtung hingegen per hsadmin (virtusertable) und hsadmin (aliases) so:&lt;br /&gt;
&lt;br /&gt;
A) virtusertable:&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman -s domain=lists.example.com -s &#039;target=XYZ00-mailman&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-admin -s domain=lists.example.com -s &#039;target=XYZ00-mailman-admin&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-bounces -s domain=lists.example.com -s &#039;target=XYZ00-mailman-bounces&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-confirm -s domain=lists.example.com -s &#039;target=XYZ00-mailman-confirm&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-join -s domain=lists.example.com -s &#039;target=XYZ00-mailman-join&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-leave -s domain=lists.example.com -s &#039;target=XYZ00-mailman-leave&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-owner -s domain=lists.example.com -s &#039;target=XYZ00-mailman-owner&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-request -s domain=lists.example.com -s &#039;target=XYZ00-mailman-request&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-subscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-subscribe&#039;&lt;br /&gt;
 hsadmin -c emailaddress.add -s localpart=mailman-unsubscribe -s domain=lists.example.com -s &#039;target=XYZ00-mailman-unsubscribe&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Die bei den Mail-Adressen oben angegebenen Aliase werden mit [[hsadmin|hsadmin CLI]] angelegt.&lt;br /&gt;
&lt;br /&gt;
B) aliase:&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman post mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-admin&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman admin mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-bounces&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman bounces mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-confirm&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman confirm mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-join&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman join mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-leave&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman leave mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-owner&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman owner mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-request&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman request mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-subscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman subscribe mailman&amp;quot;&#039;&lt;br /&gt;
 hsadmin -c emailalias.add -s name=&#039;XYZ00-mailman-unsubscribe&#039; -s &#039;target=&amp;quot;|/home/pacs/XYZ00/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;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.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
&lt;br /&gt;
Administriert werden Listen über http://lists.example.com/admin/&amp;lt;listenname&amp;gt; und entweder dem Listenpasswort oder dem Site-Passwort.&lt;br /&gt;
&lt;br /&gt;
Als erstes sollte man die Liste &amp;quot;mailman&amp;quot; selber abbonieren. (http://lists.example.com/admin/mailman)&lt;br /&gt;
&lt;br /&gt;
Bis auf das Anwenden der sitelist.cfg werden auch alle weiteren Listen nach obigem Schema angelegt, oder (bis auf das anlegen der virtusertable Einträge und aliase) über das Mailman Webinterface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war&#039;s. Mailman ist jetzt fertig installiert und müsste sogar funktionieren ;)&lt;br /&gt;
&lt;br /&gt;
== Feintuning == &lt;br /&gt;
&lt;br /&gt;
Wer will, kann auch noch etwas Platz sparen. Die normale Mailmaninstallation schlägt mit über 20 MB zu Buche...&lt;br /&gt;
&lt;br /&gt;
Mit den folgenden Tips kann man das auf ca. 6 MB reduzieren :)&lt;br /&gt;
&lt;br /&gt;
Es kann natürlich sein, dass ich zuviel lösche, aber bei mir funktioniert&#039;s. Wenn ihr also sicher(er) sein wollt, dass euch der Mailman nicht um die Ohren fliegt, macht das nicht!&lt;br /&gt;
&lt;br /&gt;
*  ~/mailman/cgi-bin und ~/mailman/icons können gelöscht werden, falls sie an andere Stelle kopiert worden sind.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/messages löschen.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/templates löschen (bis auf englisch).&lt;br /&gt;
* ~/mailman/tests kann, soweit ich das sehe, komplett gelöscht werden.&lt;br /&gt;
* Falls man koreanisch und japanisch nicht braucht, kann man folgendes machen:&lt;br /&gt;
* in ~/mailman/bin/paths.py, ~/mailman/cron/paths.py und ~/mailman/scripts/paths.py die Zeilen:&lt;br /&gt;
&lt;br /&gt;
 # In a normal interactive Python environment, the japanese.pth and korean.pth&lt;br /&gt;
 # files would be imported automatically. But because we inhibit the importing&lt;br /&gt;
 # of the site module, we need to be explicit about importing these codecs.&lt;br /&gt;
 import japanese&lt;br /&gt;
 # As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean&lt;br /&gt;
 # codecs installed, however leave the first import in there in case an upgrade&lt;br /&gt;
 # changes this.&lt;br /&gt;
 import korean&lt;br /&gt;
 import korean.aliases&lt;br /&gt;
&lt;br /&gt;
auskommentieren.&lt;br /&gt;
&lt;br /&gt;
Dann kann man ~/mailman/pythonlib/japanese, ~/mailman/pythonlib/korean, ~/mailman/pythonlib/korean.pth sowie ~/mailman/pythonlib/lib löschen.&lt;br /&gt;
   &lt;br /&gt;
Man kann auch noch die Debug-Informationen aus den binaries strippen:&lt;br /&gt;
&lt;br /&gt;
      strip ~/mailman/mail/mailman&lt;br /&gt;
      strip ~/mailman/cgi-bin/*&lt;br /&gt;
&lt;br /&gt;
Falls die CGIs nicht gesymlinkt wurden:&lt;br /&gt;
      strip ~/doms/lists.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
== Multidomainfähigkeit ==&lt;br /&gt;
&lt;br /&gt;
Seit Mailman 2.x kann eine Mailman-Installation unter gewissen Einschränkungen für mehrere Domains verwendet werden. Hier soll kurz gezeigt werden, was geht und wie es geht.&lt;br /&gt;
&lt;br /&gt;
=== Anleitung ===&lt;br /&gt;
&lt;br /&gt;
Logischerweise muss das Webfrontend (die CGIs) auf allen Domains installiert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn man nun Mailinglisten mit newlist neu anlegt, muss man den Hostnamen für das Webfontend mit angeben, und zwar so:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist listenname@lists.example.com&lt;br /&gt;
&lt;br /&gt;
Es ist ggf. 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 lists.example.com sowohl als URL für das Webfrontend wie auch als Hostpart für Emailadressen verwendet. (Was für separate aufgeschaltete Domains wie z.B. lists.example.com gerade zutrifft.)&lt;br /&gt;
&lt;br /&gt;
Liegt das Frondend nicht auf der Maildomain ist es wichtig, dass ihr Mailman sagt, für welches die zugehörige Maildomain ist. Dies tut ihr in der Datei ~/mailman/Mailman/mm_cfg.py:&lt;br /&gt;
&lt;br /&gt;
Also z.B.&lt;br /&gt;
 DEFAULT_URL_HOST = &#039;www.example.com&#039;&lt;br /&gt;
 DEFAULT_EMAIL_HOST = &#039;lists.example.com&#039;&lt;br /&gt;
 add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST)&lt;br /&gt;
&lt;br /&gt;
und&lt;br /&gt;
 add_virtualhost(&#039;www.zoopnet.de&#039;, &#039;listen.zoopnet.de&#039;)&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass Mailman per default davon ausgeht, dass alle Listen für die Domain example.com sind.&lt;br /&gt;
Alle weiteren 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.&lt;br /&gt;
&lt;br /&gt;
Tip von Raimund Specht: Lässt man den zweiten Parameter weg, also schreibt z.B. add_virtualhost(&#039;www.example.org&#039;), dann benutzt Mailman als Hostpart alles was nach dem ersten Punkt steht, hier also example.org als Maildomain.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Prinzipiell war&#039;s das. Man muss die Listeneinträge natürlich immer in die richtige virtusertable eintragen, und für gleichnamige Mailinglisten auf verschiedenen Domains (mailman@*) verschidene +Ergänzungen bzw. aliase verwenden. :)&lt;br /&gt;
&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
&lt;br /&gt;
Verschiedene Listen mit gleichem Namen (also z.B. liste@example1.com und liste@example2.com) sind mit Mailman 2.1 leider nicht möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips und Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== URL Änderungen ===&lt;br /&gt;
Nach URL Änderungen stimmen Links im Web-Interface nicht mehr und Listen werden nicht mehr angezeigt.&lt;br /&gt;
Es sind dann, zusätzlich zur Anpassung der mm_cfg.py, schon bestehende Listen und Archive mit folgendem Befehl zu aktualisieren:&lt;br /&gt;
 ~/mailman/bin/withlist -l -r fix_url &amp;lt;Listen_Name&amp;gt; -v -u &amp;lt;Neue_Url&amp;gt;&lt;br /&gt;
&amp;lt;Listen_Name&amp;gt; steht für die Mailingliste, die bearbeitet werden soll. &amp;lt;Neue_Url&amp;gt; für die neue URL/Webadresse des Webinterfaces.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Cron-Jobs zur Mailinglisten Verwaltung ===&lt;br /&gt;
&lt;br /&gt;
Folgende Cronjobs helfen bei der Verwaltung und sind User freundlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt; In Arbeit &amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referenzen =&lt;br /&gt;
&lt;br /&gt;
Lösung zur installation als Domainadmin statt Paketadmin:&lt;br /&gt;
https://lists.hostsharing.net/archiv/support/2009-June/019414.html&lt;br /&gt;
&lt;br /&gt;
ältere Anleitung für Installation als Dom-Admin: &amp;lt;http://lists.hostsharing.net/archiv/support/2005-January/012426.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laufenlassen mit event:&lt;br /&gt;
Download und Doku auf &amp;lt;http://al000.hostsharing.net/mailman/mmhs/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;Mutter der Mailman-Installations-Doku&amp;quot; &amp;lt;http://al000.hostsharing.net/mailman/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;kleinen Tools&amp;quot; auf http://hs.andreasloesch.de, wobei das &#039;pac-mm-install&#039; wahrscheinlich nicht aktuell (genug) ist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Daz00-daniel</name></author>
	</entry>
</feed>