ezmlm ist ein von Dan J. Bernstein entwickelter Mailinglisten-Manager, der sich gut in das von uns verwendete netqmail-System integriert. Wir setzen bei uns die Erweiterung ezmlm-idx ein, die eine ganze Reihe von Features nachrüstet, darunter Mehrsprachigkeit und Moderationsmöglichkeiten sowohl für Anmeldungen als auch für Nachrichten.
Für das Anlegen von Listen und auch für das nachträgliche Ändern ist das Programm ezmlm-make da. Es benötigt vier Parameter:
@ in der Listenadresse)@ in der Listenadresse)
Der Grund, dass lokaler Teil der Adresse und Hostname separat erfasst werden, liegt darin, dass ezmlm-idx im Gegensatz zu den meisten anderen Mailinglisten-Managern nicht über Anweisungen in der Betreffzeile oder dem Text der Mail erfolgen, sondern in der Adresse (beispielsweise finden Anmeldungen über listenname-subscribe@host statt) - es muss also immer wieder eigene E-Mail-Adressen aus diesen Angaben „zusammensetzen“.
Standardmäßig legen die meisten User Listen direkt in ihrem Home-Verzeichnis an. Wer gerne Ordnung hält, möchte sie aber vielleicht auch gerne in ein Unterverzeichnis packen, wie z. B. ezmlm - das bleibt aber dir überlassen. So sieht's dann aus, wenn du beispielsweise phoebe auf dem Host amnesia bist, die Domain phoebes-domain.tld aufgeschaltet hast und eine Liste namens all anlegen willst:
[phoebe@amnesia ~]$ mkdir ~/ezmlm [phoebe@amnesia ~]$ ezmlm-make ~/ezmlm/all ~/.qmail-all all phoebes-domain.tld
Besitzt du mehrere Domains und hast diese auf verschiedene Namensräume im Mailsystem mappen lassen? (Wenn du nicht weißt, wovon hier die Rede ist, kannst du diesen Absatz überspringen. Standardmäßig kommen keine Namensräume zum Einsatz, solange du sie nicht explizit beauftragt hast.) In diesem Fall musst du den Namensraum mit im Namen der .qmail-Datei erwähnen. Hättest du also beispielsweise phoebes-domain.tld auf den Namensraum pd aufschalten lassen, so müsstest du im obigen Befehl die Angabe ~/.qmail-all durch ~/.qmail-pd-all ersetzen. Die ersten beiden Angaben sind also dafür da, dass netqmail und ezmlm-idx die Liste und ihre Konfiguration finden; die dritte und vierte Angabe regeln, wie die Liste nach außen dargestellt wird.
Standardmäßig verhalten sich ezmlm-idx-Mailinglisten wie einfache, klassische Mailinglisten: Jeder kann sich anmelden; jeder kann Mails über die Liste versenden. In der Praxis möchte man dies häufig einschränken, z.B. dergestalt, dass nur Listenteilnehmer Mails über die Liste versenden dürfen, dass Listenmails moderiert werden, oder dass bereits die An- und Abmeldung moderiert werden soll, wenn es beispielsweise um geschlossene Benutzergruppen geht, die nicht von jedem abonniert können werden dürfen.
Optionen werden dem ezmlm-make-Befehl als Switches übergeben. Du kannst mehrere Switches problemlos kombinieren; der gemeinsame Einsatz von -A, -b und -e könnte auf Wunsch auch als -Abe zusammengefasst werden. Als Faustregel kannst du dir merken, dass Groß- und Kleinschreibung von Switches typischerweise Gegenteiliges bedeuten und die Kleinschreibung eine Funktion einschaltet, während die Großschreibung sie ausschaltet - so aktiviert -a die Funktion, ein Listenarchiv zu führen; -A unterbindet das Führen eines Listenarchivs.
Hier beispielhaft einige übliche Einstellungen:
-m | Jede Nachricht an die Liste muss zunächst von einem Moderator bestätigt werden, bevor sie verteilt wird |
-s | Jede Anmeldung an der Liste muss zunächst von einem Moderator bestätigt werden, bevor sie wirksam wird |
-u | Nur Listenteilnehmer dürfen an die Liste schreiben |
Dies ist ein trivialer Schutz, der nur auf der Prüfung der Absenderadresse basiert; er erschwert den Versand von Spam über die Liste, verhindert ihn aber nicht, da Absenderadressen von Mails grundsätzlich frei wählbar und damit auch frei fälschbar sind
-5 user@example.com | E-Mails an listenname-owner@host werden an die angegebene Mailadresse weitergeleitet |
-d | Erstelle Sammlungen von Nachrichten für Digest-Abonnenten |
Ein Digest ist eine kombinierte E-Mail mit den Beiträgen auf der Liste, die anstelle einzelner Beiträge an Abonnenten verschickt wird. Diese erhält man, wenn man sich mit listenname-digest-subscribe@host anmeldet.
Mit man ezmlm-make kannst du eine Übersicht über sämtliche Switches einsehen.
Mit Hilfe der Option -+ kannst du mittels ezmlm-make die Einstellungen einer bestehenden Liste ändern. Bereits in der Vergangenheit gesetzte Switches werden dabei automatisch beibehalten. So könntest du beispielsweise nachträglich die Moderation der Anmeldungen aktivieren, wenn du dies nicht gleich erledigt hast:
[phoebe@amnesia ~]$ ezmlm-make -+ -s ~/ezmlm/all ~/.qmail-all all phoebes-domain.tld
Bitte beachte, dass die schon von der Anmeldung her bekannten vier Parameter auch bei Änderungen übergeben werden müssen. Auf diese Weise kannst du beispielsweise nachträglich ändern, wenn deine Liste nun nicht mehr unter phoebes-domain.tld laufen soll, sondern unter phoebe.tld.
Du kannst für jede Liste separat entscheiden, welche Sprache für die von ezmlm-idx selbst generierten Mails zum Einsatz kommt. (Es ist allerdings derzeit nicht möglich, dass Enduser selbst über die Sprache entscheiden können; einen Liste hat von daher immer genau eine Sprache.) Die Spracheinstellung kann du mit dem Argument -C festlegen, das als Argument ein Verzeichnis bekommt, in dem eine vom Standard abweichende ezmlmrc sowie im Unterverzeichnis text/ vom Standard abweichende Texte liegen. Im Verzeichnis /etc/ezmlmrc liegen mehrere Unterverzeichnisse nach Sprache sortiert. Möchtest du also beispielsweise eine Liste anlegen, die deutsche Texte anstelle der englischen Standardtexte ausgibt, so kannst du wie folgt vorgehen:
[phoebe@amnesia ~]$ ezmlm-make -C /etc/ezmlm/de ~/ezmlm/all ~/.qmail-all all phoebes-domain.tld
Natürlich kannst du auch später noch mit -+ -C /etc/ezmlm/de die Sprache anpassen.
Enduser können unter anderem folgende E-Mail-Adressen benutzen (du solltest es ihnen an geeigneter Stelle kommunizieren):
listenname@host | Mail an die Mailingliste senden |
listenname-subscribe@host | Mailingliste abonnieren |
listenname-unsubscribe@host | Mailingliste abbestellen |
listenname-help@host | Detaillierte Hilfe abrufen |
listenname-owner@host | Listeneigentümer persönlich kontaktieren |
Der Hilfetext passt sich dabei automatisch der Listenkonfiguration an. Wird beispielsweise ein Listenarchiv geführt, erfahren die Enduser in der Hilfe, wie sie Nachrichten aus dem Archiv abrufen können - wird keins geführt, gibt es auch keinen Hilfstext dazu.
Normalerweise sollten Interessierte deine Liste selbst abonnieren, in dem sie eine (leere) Mail an listenname-subscribe@host senden. Durch eine Rückfragemail stellt ezmlm-idx automatisch sicher, dass keine gefälschen Anmeldungen vorgenommen werden können.
Solltest du Gründe haben, die ein manuelles Hinzufügen oder Entfernen nötig machen, beispielsweise weil du von einem anderen Mailinglistenmanager umsteigen willst und einen Adressbestand importieren willst, so sind die Befehle ezmlm-sub und ezmlm-unsub deine Freunde. Sie bekommen das Listenverzeichnis als erstes und die betreffende E-Mail-Adresse als zweites Argument. Beispiel:
[phoebe@amnesia ~]$ ezmlm-sub ~/ezmlm/all my_friend@somedomain.tld [phoebe@amnesia ~]$ ezmlm-unsub ~/ezmlm/all no_way@someotherdomain.tld
Bitte beachte, dass der integrierte Rückfragemechanismus hierbei außer Kraft gesetzt ist - du bearbeitest direkt die Liste der Abonnenten. Bei Uberspace.de setzen wir voraus, dass du nicht unangenehm als Spammer auffallen möchtest. Es ist daher eine zwingende Voraussetzung und auch Bestandteil unserer Hausordnung, dass du mit Hilfe von Mailinglisten ausschließlich Empfänger beschicken darfst, die ausdrücklich dem Erhalt solcher Mails zugestimmt haben.
Die Verwaltung von Moderatoren ist grundsätzlich nur dann erforderlich, wenn du deine Mailingliste mit -m (message moderation) oder -s (subscription moderation) konfiguriert hast. Moderatoren sind technisch gesehen ebenfalls eine Art „Abonnenten“, nur dass diese im separaten Unterverzeichnis mod verwaltet werden. So sieht das dann aus:
[phoebe@amnesia ~]$ ezmlm-sub ~/ezmlm/all mod new_moderator@somedomain.tld [phoebe@amnesia ~]$ ezmlm-unsub ~/ezmlm/all mod retired_moderator@someotherdomain.tld
Moderatoren können sich selbstverständlich nicht selbst per E-Mails ein- oder austragen; nur du selbst kannst darüber entscheiden.
Moderation erfolgt grundsätzlich per E-Mail. Ein Moderator bekommt dabei eine Nachricht, die die durchzuführende Aktion schildert und zwei Antwortadressen beinhaltet, eine zum Genehmigen und eine zum Ablehnen. In den Adressen ist dabei ein kryptografischer Code enthalten, der nur einmalig nur für genau die angefragte Aktion funktioniert. ezmlm-idx arbeitet grundsätzlich nicht mit Passwörtern, nur mit solchen Einmal-Codes.
Bei beiden Moderationsarten gilt folgendes Prinzip:
listenname@host sendet, so bekommt nur dieser Moderator die entsprechende Rückbestätigungsmail.Im Fall einer Ablehnung wird derjenige, der die Aktion auszulösen versucht hat, entsprechend über die Ablehnung informiert. Der Moderator hat dabei die Möglichkeit, auch einen Grund für die Ablehnung mit anzugeben.
Wenn du möchtest, dass alle Mails, die über die Liste laufen, im Betreff eine listenspezifische Markierung erhalten, damit sie für die Empfänger optisch schneller erkennbar sind (unabhängig vom Mailing-List:-Header, den ezmlm-idx in die Mailheader schreibt), kannst du einen sogenannten Präfix setzen. Dazu wird der Inhalt der Datei prefix im Listenverzeichnis verwendet, den du z.B. so definieren kannst:
[phoebe@amnesia ~]$ echo '[MyList]' > ~/ezmlm/all/prefix
Danke an Martin Dosch für den Hinweis!
Das Löschen einer Liste ist schnell erledigt und umfasst zwei Dinge: Zum einen müssen die .qmail-Dateien der Mailingliste gelöscht werden. Das geht einfach so (hier konkret für den Listennamen all, mit dem wir auch bei den vorherigen Beispielen gearbeitet haben):
[phoebe@amnesia ~]$ rm -f ~/.qmail-all ~/.qmail-all-*
Anschließend kannst du das ezmlm-Datenverzeichnis komplett entfernen. Wenn du unserer Empfehlung gefolgt bist und ein Verzeichnis ezmlm für die verschiedenen Mailinglisten angelegt hast, liefe das entsprechend so:
[phoebe@amnesia ~]$ rm -rf ~/ezmlm/all
Auf http://untroubled.org/ezmlm findest du eine umfangreiche FAQ und ein noch umfangreicheres Handbuch zu ezmlm-idx.