
Hallo Leute. Ich habe mir vorhin einen Mailman installiert. War etwas mühsam, aber nun läuft das Dings wenigstens im Prinzip. Ich hätte aber eine generelle Frage dazu: Ich möchte Mailman gern auf dem lokalen Mailserver betreiben. Aber die Domäne, unter der der ganze Mailverkehr abgewickelt wird, wird von einem Provider gehostet. Postfix wirft Mails dem smtp des Providers in den Rachen, fetchmail holt die Mails dort ab. Wie geht man am sinnvollsten mit dieser Situation um? Für jede Liste mehrere Postfächer anzulegen (also liste-subscribe, liste-unsubsribe, liste-owner, usw) ist ja ein immenser Aufwand. Gibts da einen schlaueren Weg? Dankbar für Hinweise ist -- Andre Tann

Am Montag, 30. Januar 2006 17:52 schrieb Andre Tann:
Ich habe mir vorhin einen Mailman installiert. War etwas mühsam, aber nun läuft das Dings wenigstens im Prinzip. Ich hätte aber eine generelle Frage dazu:
Ich möchte Mailman gern auf dem lokalen Mailserver betreiben. Aber die Domäne, unter der der ganze Mailverkehr abgewickelt wird, wird von einem Provider gehostet. Postfix wirft Mails dem smtp des Providers in den Rachen, fetchmail holt die Mails dort ab.
Wie geht man am sinnvollsten mit dieser Situation um? Für jede Liste mehrere Postfächer anzulegen (also liste-subscribe, liste-unsubsribe, liste-owner, usw) ist ja ein immenser Aufwand. Gibts da einen schlaueren Weg?
ja, bei 1und1 kann man "Weiterleitungen" einrichten. Vielleicht kann man das auch noch bei anderen ISPs machen. Ich habe also für alle Mailman-Adressen eine Weiterleitung auf eine einzige "reale" Mail-Adresse (nicht der Name der Mailingliste, sonderen irgendetwas anderes!) angelegt. Diese wird dann mittels fetchmail abgeholt. Während des Anlegens der mailnam-Listen wird die Datei /var/lib/mailman/data/aliases erzeugt. In dieser Datei sollten sich Einträge der Art: test: "|/usr/lib/mailman/mail/mailman post test" test-admin: "|/usr/lib/mailman/mail/mailman admin test" test-bounces: "|/usr/lib/mailman/mail/mailman bounces test" test-confirm: "|/usr/lib/mailman/mail/mailman confirm test" test-join: "|/usr/lib/mailman/mail/mailman join test" test-leave: "|/usr/lib/mailman/mail/mailman leave test" test-owner: "|/usr/lib/mailman/mail/mailman owner test" test-request: "|/usr/lib/mailman/mail/mailman request test" test-subscribe: "|/usr/lib/mailman/mail/mailman subscribe test" test-unsubscribe: "|/usr/lib/mailman/mail/mailman unsubscribe test" finden, (wenn die Mailingliste "test" heisst). Diese Datei muß man dann noch in /etc/postfix/main.cf in der Zeile alias_maps = hash:/etc/aliases,hash:/var/lib/mailman/data/aliases dazufügen. Alles neu starten. Das ganze funktioniert, da die "Weiterleitung" die "To", "cc" -Zeile normaler weise nicht ändert, und Postfix via den Aliassen die "richtige" Zuordnung erledigen kann. Achtung: Mailman legt einige Infos auf einem Web-Server ab, wo die Infos von Mitgliederen der Mailingliste normalerweise per Browser anschauen können. Falls der Server nicht mit dem Internet verbunden (Sprich man kann vom Internet aus auf ihn zugreifen) ist, hat man da Probleme... Bei mir gaht das halt einfach nicht. Ich habe auch die entsprechenden Texte in /var/lib/mailman/irgendwo... geändert. Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer

Dr. Jürgen Vollmer, Montag, 30. Januar 2006 19:58:
ja, bei 1und1 kann man "Weiterleitungen" einrichten. Vielleicht kann man das auch noch bei anderen ISPs machen.
Meine Domäne liegt bei 1und1.
Ich habe also für alle Mailman-Adressen eine Weiterleitung auf eine einzige "reale" Mail-Adresse (nicht der Name der Mailingliste, sonderen irgendetwas anderes!) angelegt.
OK, das könnte ich dann auch mittels eines catchall-Accounts erreichen. Aber egal, soweit ist es mir noch klar.
Diese wird dann mittels fetchmail abgeholt.
Jo, und hier verstehe ich nicht, wie Du weiter verfährst. Gibst Du in der fetchmailrc einfach an poll ... dann verbleibt die Mail in der Mailbox des abholenden Users. Schreibst Du stattdessen poll ... is user here; dann landet die Mail bei user. Wie schaffst Du es also, daß die Mail entsprechend der mailman-aliases ausgeliefert wird?
Diese Datei muß man dann noch in /etc/postfix/main.cf in der Zeile alias_maps = hash:/etc/aliases,hash:/var/lib/mailman/data/aliases dazufügen.
Ist bei mir so eingetragen.
Das ganze funktioniert, da die "Weiterleitung" die "To", "cc" -Zeile normaler weise nicht ändert, und Postfix via den Aliassen die "richtige" Zuordnung erledigen kann.
Klar, die Weiterleitung ändert nur den Envelope-Krams, nicht die Mail selbst. Aber wie gesagt - wie erreichst Du, daß postfix die Mail überhaupt zu sehen kriegt? Gruß! -- Andre Tann

Am Montag, 30. Januar 2006 21:43 schrieb Andre Tann:
Dr. Jürgen Vollmer, Montag, 30. Januar 2006 19:58:
ja, bei 1und1 kann man "Weiterleitungen" einrichten. Vielleicht kann man das auch noch bei anderen ISPs machen.
Meine Domäne liegt bei 1und1.
Ich habe also für alle Mailman-Adressen eine Weiterleitung auf eine einzige "reale" Mail-Adresse (nicht der Name der Mailingliste, sonderen irgendetwas anderes!) angelegt.
OK, das könnte ich dann auch mittels eines catchall-Accounts erreichen. Aber egal, soweit ist es mir noch klar.
Diese wird dann mittels fetchmail abgeholt.
Jo, und hier verstehe ich nicht, wie Du weiter verfährst. Gibst Du in der fetchmailrc einfach an
poll ...
dann verbleibt die Mail in der Mailbox des abholenden Users. Schreibst Du stattdessen
poll ... is user here;
ja so mache ich das. (hach man sollte sich das ganze Zeugs mal aufschreiben, ein privates HOWTO). nennen wir den User mal "ml" dann hab' ich noch ein: /home/ml/.forward mit dem Inhalt (incl. der ", ohne blanks vorne) "|exec /usr/bin/procmail -t" in /home/ml/.procmail steht dann: ############################################################################### ## Test-Mailingliste ############################################################################### :0 * ^TOtest@ja-wo-denn\.de ! test@myhost.home :0 * ^TOtest-admin@ja-wo-denn\.de ! test-admin@myhost.home :0 * ^TOtest-bounces@ja-wo-denn\.de ! test-bounces@myhost.home :0 * ^TOtest-confirm@ja-wo-denn\.de ! test-confirm@myhost.home :0 * ^TOtest-join@ja-wo-denn\.de ! test-join@myhost.home :0 * ^TOtest-leave@ja-wo-denn\.de ! test-leave@myhost.home :0 * ^TOtest-owner@ja-wo-denn\.de ! test-owner@myhost.home :0 * ^TOtest-request@ja-wo-denn\.de ! test-request@myhost.home :0 * ^TOtest-subscribe@ja-wo-denn\.de ! test-subscribe@myhosthome :0 * ^TOtest-unsubscribe@ja-wo-denn\.de ! test-unsubscribe@myhost.home ############ hier wird also die Mail an den User "ml" an das lokale System mit neuen Empfängern weitergeleitet. Dann endlich kann postfix zuschlagen (mit den Alias-Regeln) Man spart sich halt duzende Postfächer und polls bei fetchmail, darfür hat man den Umweg über einen speziellen User und procmail. Nun ja.... klarer? wenn nicht, dann nochmal frage :-) bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer

Hallo Jürgen, Du schriebst, ich soll fragen, also frag ich... Dr. Jürgen Vollmer, Montag, 30. Januar 2006 22:56:
dann hab' ich noch ein: /home/ml/.forward
OK, verstehe ich.
mit dem Inhalt (incl. der ", ohne blanks vorne) "|exec /usr/bin/procmail -t"
Wieso |exec..., und nicht einfach |/usr/bin/procmail? So hatte ich das immer, und es tut auch.
:0
* ^TOtest@ja-wo-denn\.de ! test@myhost.home
Wieso ^TOtest@...? Wenn jemand an testliste <test@ja-wo-denn> schreibt, dann trifft Deine Regel doch nicht, oder? Müßte es nicht ^TO.*test@... heißen?
Man spart sich halt duzende Postfächer und polls bei fetchmail,
Stimmt, dafür mußt Du aber pro Liste haufenweise procmail-Regeln anlegen, die obendrein nicht mehr funktionieren, wenn einer ein BCC benutzt. Aber das ist ja im Prinzip die Multidrop-Diskussion bei fetchmail. Jedenfalls habe ich im Prinzip Dein Vorgehen verstanden. Wenn ich noch eine allgemeine Mail-Frage hinterherschieben darf: wo kann man eigentlich die richtige und sinnvolle Verwendung von virtual, canonical usw., und Parametern wie myhost, mydestination, myorigin usw. erlernen? Ich habe schon allerlei Mailsysteme aufgesetzt, und sie funktionieren auch alle. Aber so richtig klar ist mir die Maskiererei und Neuschreiberei von Adressen nie geworden. Es dankt -- Andre Tann

Hallo Andre, hallo Leute, Am Montag, 30. Januar 2006 23:29 schrieb Andre Tann: [...]
Wenn ich noch eine allgemeine Mail-Frage hinterherschieben darf: wo kann man eigentlich die richtige und sinnvolle Verwendung von virtual, canonical usw., und Parametern wie myhost, mydestination, myorigin usw. erlernen? Ich habe schon allerlei Mailsysteme aufgesetzt, und sie funktionieren auch alle. Aber so richtig klar ist mir die Maskiererei und Neuschreiberei von Adressen nie geworden.
Ich lese gerade "Das Postfix-Buch" von Peer Heinlein - IMHO gut verständlich, geht aber trotzdem genügend in die Tiefe, um auch komplizierte Konfigurationen zu verstehen. http://suse-linux-faq.koehntopp.de/php/amazon.php?isbn=393751404X Gruß Christian Boltz -- This message was sent using 100 % recycled electrons.

Christian Boltz, Dienstag, 31. Januar 2006 02:08:
Ich lese gerade "Das Postfix-Buch" von Peer Heinlein - IMHO gut verständlich, geht aber trotzdem genügend in die Tiefe, um auch komplizierte Konfigurationen zu verstehen.
Ich habs mir gekauft, und auch schon größtenteils durchgelesen. Ich finde es nicht so allzu tiefgehend. Nimm etwa das Kapitel zu Mailman, das bleibt recht oberflächlich. Insbesondere eine Frage, die sich mir ständig stellt, wird dort nicht behandelt: wie geht man mit der Situation um, daß MX meiner Domain domain.de nicht mein eigener Rechner ist, sondern der des Providers? Ich hole Mails von dort mit fetchmail ab, und verteile an die Nutzer lokal. Wenn die Nutzer an domain.de schreiben, dann sollen die Mails auch gleich wieder lokal verteilt werden. Für manche Adressen unter domain.de soll aber nach draußen ausgeliefert werden. Und wie stelle ich Mailman in so einer Situation ein: soll er schon gleich mit Adressen unter domain.de arbeiten, oder soll Mailman mit lokalen, d.h. also ungültigen Adressen arbeiten, und postfix schreibt über die canonical alles um, oder wie? Für all diese Fragen habe ich mir schon eine Lösung überlegt. Aber ich hätte gern gewußt, wie man es richtig, d.h. kunstgerecht macht. Aber dazu steht nix im Postfixbuch, leider. Gruß, und danke fürs Zuhören... -- Andre Tann

Hallo, Am Mon, 30 Jan 2006, Andre Tann schrieb:
Du schriebst, ich soll fragen, also frag ich...
Dr. Jürgen Vollmer, Montag, 30. Januar 2006 22:56:
dann hab' ich noch ein: /home/ml/.forward
OK, verstehe ich.
mit dem Inhalt (incl. der ", ohne blanks vorne) "|exec /usr/bin/procmail -t"
Das geht doch auch ohne ~/.forward direkt von postfix aus. Oder filtert nur dieser User per procmail? Dann ginge das auch ueber die alias-Datei (wie bei mailman fuer sendmail dokumentiert), AFAIK verwenden ja sendmail und postfix die gleiche alias-Syntax, und da geht: a) test: "|/usr/local/mailman/mail/wrapper post test" [..] bzw. wenn du unbedingt procmail willst: ml "|/usr/bin/procmail -t"
Wieso |exec..., und nicht einfach |/usr/bin/procmail? So hatte ich das immer, und es tut auch.
help exec
:0
* ^TOtest@ja-wo-denn\.de ! test@myhost.home
Wieso ^TOtest@...? Wenn jemand an testliste <test@ja-wo-denn> schreibt, dann trifft Deine Regel doch nicht, oder? Müßte es nicht ^TO.*test@... heißen?
Das ist ein Fipptheler von Juergen, das muss * ^TO_test... sein. Und damit...
Man spart sich halt duzende Postfächer und polls bei fetchmail,
Stimmt, dafür mußt Du aber pro Liste haufenweise procmail-Regeln anlegen, die obendrein nicht mehr funktionieren, wenn einer ein BCC benutzt. Aber das ist ja im Prinzip die Multidrop-Diskussion bei fetchmail.
...erschlaegt man das Problem gleich mit, denn ==== man procmailrc ==== If the regular expression contains `^TO_' it will be sub stituted by `(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X- Envelope|Apparently(-Resent)?)-To):(.*[^-a-zA-Z0-9_.])?)', which should catch all destination specifications containing a specific address. ==== -dnh -- - Macs sind für die, die nicht wissen wollen, warum Ihr Rechner funzt. - Linux ist für die, die wissen wollen, warum er funzt. - DOS ist für die, die wissen wollen, warum er nicht funzt, und - Windows ist für die, die nicht wissen wollen, warum er nicht funzt.

David Haller, Dienstag, 31. Januar 2006 03:20:
Dann ginge das auch ueber die alias-Datei [...] ml "|/usr/bin/procmail -t"
Als welcher User wird denn in so einem Fall procmail aufgerufen, sprich: welche .procmailrc wird denn angewendet?
Wieso |exec..., und nicht einfach |/usr/bin/procmail? So hatte ich das immer, und es tut auch.
help exec
Hatte ich schon gelesen, aber ich versteh den Unterschied trotzdem nicht :(
* ^TO_test...
OK. -- Andre Tann

Hallo, Am Tue, 31 Jan 2006, Andre Tann schrieb:
David Haller, Dienstag, 31. Januar 2006 03:20:
Dann ginge das auch ueber die alias-Datei [...] ml "|/usr/bin/procmail -t"
Als welcher User wird denn in so einem Fall procmail aufgerufen,
Als 'ml' denke ich.
sprich: welche .procmailrc wird denn angewendet?
Kannst du beim Aufruf von procmail auch direkt angebe. Es muesste aber die ~ml/.procmailrc sein.
Wieso |exec..., und nicht einfach |/usr/bin/procmail? So hatte ich das immer, und es tut auch.
help exec
Hatte ich schon gelesen, aber ich versteh den Unterschied trotzdem nicht :(
$ ( /bin/echo "foo"; /bin/echo "bar"; ) foo bar $ ( exec /bin/echo "foo"; /bin/echo "bar"; ) foo Bei exec ersetzt sich die shell durch das aufgerufene Programm, ansonsten forkt sie und diese geforkte shell ersetzt sich dann. Die aufrufende shell laeuft weiter. Sinnvoll ist exec z.B. bei wrapperscripten. Schau z.B. mal in die ~/.xinitrc: ==== [Machwas] # # finaly start the window manager # exec $WINDOWMANAGER # call failsafe [Fehlerbehandlung falls $WINDOWMANAGER nicht aufgerufen werden konnte, wenn exec aufgerufen wird laeuft das script also nicht weiter] ==== In der bash hat exec aber auch noch eine weitere Funktion Beschrieben ab "If FILE is not specified, ..." Etwas mehr zur erstgenannten Funktion von exec steht in 'man 3 exec'. Die bash verwendet 'execve'. $ strace -eprocess /bin/bash -c 'exec /bin/echo "foo"' execve("/bin/bash", ["/bin/bash", "-c", "exec /bin/echo \"foo\""], [/* 97 vars */]) = 0 execve("/bin/echo", ["/bin/echo", "foo"], [/* 95 vars */]) = 0 foo _exit(0) = ? HTH, -dnh -- 65: Internet-Boom Schwachsinn (Theo Lieven)

Am Dienstag, 31. Januar 2006 03:20 schrieb David Haller:
Hallo,
Am Mon, 30 Jan 2006, Andre Tann schrieb:
Du schriebst, ich soll fragen, also frag ich...
Dr. Jürgen Vollmer, Montag, 30. Januar 2006 22:56:
dann hab' ich noch ein: /home/ml/.forward
OK, verstehe ich.
mit dem Inhalt (incl. der ", ohne blanks vorne) "|exec /usr/bin/procmail -t"
Das geht doch auch ohne ~/.forward direkt von postfix aus.
und wie muß man das dann mit postfix und fechmail machen. Sprich: - wen trägt man als Empfänger lokalen bei fetchmail ein? Bedenke: alle test-*-Addressen werden auf eine Adresse weitergeleitet, damit man nur einen Poll bei Fetchmail hat. - was trägt man wo bei postfix ein?
Oder filtert nur dieser User per procmail? Bei mir wird ansonsten per cyrus die Mailauslieferung lokal behandelt (POP und IMAP).
Dann ginge das auch ueber die alias-Datei (wie bei mailman fuer sendmail dokumentiert), AFAIK verwenden ja sendmail und postfix die gleiche alias-Syntax, und da geht:
a) test: "|/usr/local/mailman/mail/wrapper post test" [..]
das steht doch in der Alias-Datei, welche mailman erzeugt.
bzw. wenn du unbedingt procmail willst:
ml "|/usr/bin/procmail -t"
* ^TOtest@ja-wo-denn\.de ! test@myhost.home
Wieso ^TOtest@...? Wenn jemand an testliste <test@ja-wo-denn> schreibt, dann trifft Deine Regel doch nicht, oder? Müßte es nicht ^TO.*test@... heißen?
Das ist ein Fipptheler von Juergen, das muss
das geht aber auch: If the regular expression contains `^TO' it will be substituted by `(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope |Apparently(-Resent)?)-To):(.*[^a-zA-Z])?)', which should catch all destination specifications containing a specific word. ich muß zugeben, der Unterschied zwichen ^TO und ^TO_ ist mir nicht klar, obwohl ich beide reguläre Ausdrücke verstehe. Bye Jürgen, der gerne was dazulernt :-) -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer

Am Montag, 30. Januar 2006 23:29 schrieb Andre Tann:
Hallo Jürgen,
Du schriebst, ich soll fragen, also frag ich...
OK, verstehe ich.
mit dem Inhalt (incl. der ", ohne blanks vorne) "|exec /usr/bin/procmail -t"
Wieso |exec..., und nicht einfach |/usr/bin/procmail? So hatte ich das immer, und es tut auch.
hab's wahrscheinlich so gemacht, weil ich's so gelesen habe. aber ohne exec geht's auch. spart einem wahrscheinlich nur ein Prozess
:0
* ^TOtest@ja-wo-denn\.de ! test@myhost.home
Wieso ^TOtest@...? Wenn jemand an testliste <test@ja-wo-denn> schreibt, dann trifft Deine Regel doch nicht, oder? Müßte es nicht ^TO.*test@... heißen?
If the regular expression contains `^TO_' it will be substituted by `(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope |Apparently(-Resent)?)-To):(.*[^-a-zA-Z0-9_.])?)', which should catch all destination specifications containing a specific address.
Man spart sich halt duzende Postfächer und polls bei fetchmail,
Stimmt, dafür mußt Du aber pro Liste haufenweise procmail-Regeln anlegen, die obendrein nicht mehr funktionieren, wenn einer ein BCC benutzt. Aber das ist ja im Prinzip die Multidrop-Diskussion bei fetchmail.
man kann das auch noch generischer schreiben (wenn man procmail besser kennen würde). Aber irgendwann war copy&paste schneller.
Jedenfalls habe ich im Prinzip Dein Vorgehen verstanden.
Wenn ich noch eine allgemeine Mail-Frage hinterherschieben darf: wo kann man eigentlich die richtige und sinnvolle Verwendung von virtual, canonical usw., und Parametern wie myhost, mydestination, myorigin usw. erlernen? Ich habe schon allerlei Mailsysteme aufgesetzt, und sie funktionieren auch alle. Aber so richtig klar ist mir die Maskiererei und Neuschreiberei von Adressen nie geworden.
das postfix Buch hilft da weiter Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer

Hallo Jürgen, Mailman läuft jetzt bei mir, und sogar die ganze postfix-Maskiererei hab ich hinbekommen. Wenn ich jetzt nur noch meinen Cyrus wieder zum laufen kriege, dann bin ich glücklich. Dr. Jürgen Vollmer, Dienstag, 31. Januar 2006 08:22:
das postfix Buch hilft da weiter
Hatte ich mir gestern abend noch bestellt, sogar noch vor Christians Hinweis ;) Aber auf jeden Fall danke für all die Hilfe! -- Andre Tann

Servus Jürgen, Dr. Jürgen Vollmer, Montag, 30. Januar 2006 22:56:
Schreibst Du stattdessen
poll ... is user here;
ja so mache ich das. (hach man sollte sich das ganze Zeugs mal aufschreiben, ein privates HOWTO). nennen wir den User mal "ml"
dann hab' ich noch ein: /home/ml/.forward mit dem Inhalt (incl. der ", ohne blanks vorne) "|exec /usr/bin/procmail -t" in /home/ml/.procmail steht dann: [...]
Ich hake hier nochmal ein, denn ich habe nun das Problem, daß Mailman keine Bounces erkennt, und ich vermute, daß das daran liegt, daß Mailman meint, der Bounce bezieht sich auf eine andere Domain. Darf ich daher fragen, wie Deine mm_cfg.py aussieht? Hier interessieren mich v.a. add_virtualhost und VIRTUAL_HOSTS Wie hast Du diese Parameter eingestellt auf der Maschine, die über den fetchmail-Link die Mails vom Provider abholt? Funktioniert bei Dir das Bounce-Processing? Gruß. at PS: PM war beabsichtigt, denn ich war nicht sicher, ob Du noch die Threads von Januar liest... -- Andre Tann
participants (4)
-
Andre Tann
-
Christian Boltz
-
David Haller
-
Dr. Jürgen Vollmer