====== ezmlm-idx ====== [[http://cr.yp.to/ezmlm.html|ezmlm]] ist ein von [[http://cr.yp.to/|Dan J. Bernstein]] entwickelter Mailinglisten-Manager, der sich gut in das von uns verwendete [[mail:technik#netqmail|netqmail]]-System integriert. Wir setzen bei uns die Erweiterung [[http://untroubled.org/ezmlm/|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. ===== Liste anlegen ===== 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: - das Verzeichnis, in dem die Liste und ihre Konfiguration liegen soll - den Präfix für die .qmail-Dateien, die die Liste ansteuern - die lokale Adresse (also den Teil vor dem ''@'' in der Listenadresse) - den Hostnamen (also den Teil nach dem ''@'' 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 [[system:home|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 [[domain:mail|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. ===== Optionen für Listen ===== 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: ==== Moderierte Liste ==== | ''-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 | ==== Private Liste ==== | ''-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 ==== Listeneigentümer ==== | ''-5 user@example.com'' | E-Mails an ''//listenname//-owner@//host//'' werden an die angegebene Mailadresse weitergeleitet | ==== Nachrichtensammlungen ==== | ''-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. ===== Optionen ändern ===== 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''. ===== Mehrsprachigkeit ===== 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. ===== Für Enduser ===== 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. ===== Abonnenten hinzufügen und entfernen ===== 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 [[https://uberspace.de/policy|Hausordnung]], dass du mit Hilfe von Mailinglisten ausschließlich Empfänger beschicken darfst, die ausdrücklich dem Erhalt solcher Mails zugestimmt haben. ===== Moderation ===== 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: - Löst ein //Moderator// die Aktion aus, z.B. in dem er eine zu verteilende Mail an ''//listenname//@//host//'' sendet, so bekommt //nur dieser// Moderator die entsprechende Rückbestätigungsmail. - Löst //jemand anders// die Aktion aus, so werden //alle// Moderatoren gefragt, ob die Aktion genehmigt oder abgelehnt werden soll. Der erste Moderator, der antwortet, entscheidet darüber. Antwortet später noch ein anderer Moderator, bekommt er den Hinweis, dass über die Aktion bereits entschieden wurde. 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. ===== Präfix ===== 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 [[http://blog.mdosch.de/2013/09/12/ezmlm-idx-und-der-praefix/|Martin Dosch]] für den Hinweis! ===== Liste löschen ===== 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 ===== Weitere Informationen ===== Auf [[http://untroubled.org/ezmlm/|http://untroubled.org/ezmlm]] findest du eine [[http://untroubled.org/ezmlm/faq/|umfangreiche FAQ]] und ein [[http://untroubled.org/ezmlm/manual/|noch umfangreicheres Handbuch]] zu ezmlm-idx.