Mailman installation bestehendes ISPConfig 3

Till

Administrator
Mailman ist leider nicht wirklich für Hosting Server mit mehreren Kunden geeignet, da es sowas wie virtuelle Accounts bzw. Trennung von accounts nach Domänen etc. nicht voll unterstützt und man auch bei Mailinglistennamen immer Probleme bekommt sobabld 2 Kunden Ihre Liste "newletter" oder ähnlich nennen wollen. An sich benötigt Mailman einen eigenen Server pro Kunde, was aber für einen Webhoster nicht wirklich machbar sein dürfte.

Da das mailman Interface ein cgi script ist, wird es von suexec beeinflusst und das suexec mailman blockt ist auch ganz richtig, denn die mailman scripte haben halt den falschen User. Damit man das mailman Interface mit kundendomains einsetzen kann müsste man es wahrscheinlich auf einens eparaten Server installieren auf dem keine Kundenwebs laufen.

Leider ist mir keine verbreitete OS Mailinglsitensoftware bekannt die besser für Hoster funktioniert, denn dann würde ich mailman austauschen.
 

Brainfood

Member
Till über den Schutzmechanismus von SuEXEC sind wir uns einig, die Frage ist ... wie komfortabel der Umgang mit Mailinglisten auf Multidomain Hosting Servern wird, wenn nur eine primäre Verwaltungsadresse zur Verfügung steht ...

wie gesagt ... wenn eine funktionsfähige Subdomain auf DNS Seite erstellt wird, diese jedoch nicht explizit als Subdomain unter ISPConfig3 eingerichtet wurde, funktioniert der mailman Redirect von Apache ServerRoot sauber ...

statt dem Kunden jetzt ein:

http://srv123.domain.tld/cgi-bin/mailman/listinfo

anbieten zu müssen, geht ein eleganterer Pfad zu:

http://lists.masterdomain.tld/cgi-bin/mailman/listinfo

unter /etc/apache2/conf.d/mailman.conf könnte man ja ohne weiteres ein:

Code:
<IfModule mod_rewrite.c>
  <IfModule mod_ssl.c>
    <Location /mailman>
      RewriteEngine on
      RewriteCond %{HTTP} !^on$ [NC]
      RewriteRule . http://lists.masterdomain.tld/cgi-bin/mailman/listinfo  [L]
    </Location>
  </IfModule>
</IfModule>

eintragen ...

Im ISPConfig3 richtet man wie gehabt die domänenspezifischen Mailinglisten ein, mit der Prämisse: der Kunde soll immer eine eindeutige Kennung vor seinem eigentlichen Listennamen beifügen:

z.B.

meinedomain1-announce@meinedomain1.tld

Der Kunde 1 könnte jetzt ohne weiteres z.B.:

http://lists.masterdomain.tld/cgi-bin/mailman/listinfo/meinedomain1-announce

als Link in seine Projekte integrieren ...


Kunde 2 hingegen nimmt z.B.:

meinedomain2-announce@meinedomain2.tld

http://lists.masterdomain.tld/cgi-bin/mailman/listinfo/meinedomain2-announce

Die Mailman CGIs dienen ja lediglich nur zur komfortablen An/Abmeldung der Listen ... die Postverteilung sollte wie gehabt spezifisch per Postfix domänenbezogen sein

... zu guter Letzt werden die eigentlichen ISPConfig3 Webseiteneinstellungen davon unberührt bleiben, sodass SuEXEC und Co. weiter vor sich hin frönen könnten ...
 

Brainfood

Member
Eh noch besser:

wenn Kunden Mailinglisten benutzen wollen, richtet man einfach immer jeweils eine eigene Subdomain-Hierarchie dafür ein ...

Kunde 1

DNSseitig:

lists.kundendomain1.tld
A Record
AAAA Record
MX Record
TXT / SPF Record

im ISPConfig3 die Subdomain als Maildomain einrichten ...

... List1 anlegen ...

Kunde 2

DNSseitig:

lists.kundendomain2.tld
A Record
AAAA Record
MX Record
TXT / SPF Record

im ISPConfig3 die Subdomain als Maildomain einrichten ...

... Liste 2 anlegen ...

das wars ... Till, oder ist Mailman dafür bekannt bei gleichen Listennamen/jedoch unterschiedlichen Domainnamen herum zu spinnen?
 

Till

Administrator
Das sollte so gehen, solange die verwendete Domain nicht als web existiert. Den Hostnamen zu nehmen war ja nur eine Möglichkeit, es geht natürlich auch jede andere beliebige (sub) domain. Das Problem was bleibt ist das default url pattern. Es ergibt für mich wenig Sinn dass Mailman dort immer einen %s Platzhalter verlangt, denn dann kann man nicht mit einer Masterdomain arbeiten. Was man versuchen könnte ist das %s hinter ein # am Ende der URL zu packen, so dass es vom Browser ignoriert wird, so in der Art:

DEFAULT_URL_PATTERN = 'http://http://lists.masterdomain.tld/cgi-bin/mailman/#%s'

Nicht elegant aber es könnte gehen, besser wäre natürlich wenn die Mailman Entwickler einen Patch dafür hätten um das Pattern ohne Platzhalter verwenden zu können.
 

Soeldner

New Member
Ich hatte wie gesagt damals auf der Mailman Liste zwecks Virtuellen Domains diskutiert. Essenz war das Script

postfix-to-mailman.py

Eine Anleitung für Fedora:
Mailman, Postfix, Mysql und virtuelle Domains

Diskussion bei Lunchpad bezüglich ISPconfig und Mailman mit diesem Script
https://answers.launchpad.net/mailman/+question/82815
https://answers.launchpad.net/mailman/+question/82816
Sind halt schon älter.

Ich komme wie gesagt nicht vor dem Wochenende zum testen. Ich weiß noch nicht einmal ob das eine generelle Lösung wäre.
Oftmals enden diese Diskussionen mit dem aufsetzen eines separaten maillist Servers.

@Brainfood
natürlich auch eine Lösung. Muss man ISPconfig im Kern nicht verbiegen.
 

Brainfood

Member
Ich habe gerade eben 2 identische Mailinglisten aufgesetzt (samt DNS/Einstellungsgerassel)

Code:
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-admin@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-bounces@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-confirm@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-join@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-leave@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-owner@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-request@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-subscribe@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-unsubscribe@lists.domain.tld"

@Till, wäre es nicht für ISPConfig3 - 3.0.5 & höher sinnvoll, im Interface das anlegen von doppelten Mailinglistennamen zu verbieten?
 

HSorgYves

Member
Das Problem was bleibt ist das default url pattern. Es ergibt für mich wenig Sinn dass Mailman dort immer einen %s Platzhalter verlangt, denn dann kann man nicht mit einer Masterdomain arbeiten. Was man versuchen könnte ist das %s hinter ein # am Ende der URL zu packen, so dass es vom Browser ignoriert wird, so in der Art:

DEFAULT_URL_PATTERN = 'http://http://lists.masterdomain.tld/cgi-bin/mailman/#%s'

Nicht elegant aber es könnte gehen, besser wäre natürlich wenn die Mailman Entwickler einen Patch dafür hätten um das Pattern ohne Platzhalter verwenden zu können.

Ich schlage vor ISPConfig um eine Einstellung bzgl. Mailman zu erweitern: die Wahl ob Masterdomain oder Kundenseite.

Im ersten Fall sollte in der /usr/local/ispconfig/server/plugins-available/mailman_plugin.inc.php in der Zeile 76 kein URL_HOST mitgeschickt werden, also anstatt
Code:
		exec("nohup /usr/lib/mailman/bin/newlist -u ".escapeshellcmd($data["new"]["domain"])." -e ".escapeshellcmd($data["new"]["domain"])." ".escapeshellcmd($data["new"]["listname"])." ".escapeshellcmd($data["new"]["email"])." ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 &");
sollte das Kommando lauten:
Code:
		exec("nohup /usr/lib/mailman/bin/newlist -e ".escapeshellcmd($data["new"]["domain"])." ".escapeshellcmd($data["new"]["listname"])." ".escapeshellcmd($data["new"]["email"])." ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 &");
Dann wird nämlich %s in DEFAULT_URL_PATTERN durch DEFAULT_URL_HOST ersetzt und somit ist es problemlos möglich eine Masterdomain zu nutzen.
 

Werbung

Top