The Amiga EuroMail Listserver © 1991 G. Glendown Was ist ein ListServer ? ListServer ist ein Programm, was Mails an einen bestimmten Adressat (in diesem Fall `ListServ') an eine Gruppe von Usern weiterleitet. Dabei können diese Empfänger sowohl in der lokalen Box sitzen, aber auch an anderen Boxen. Oder es kann auch ein anderer Listserver die Nachricht bekommen, der die Mails dann seinerseits weiterverteilt. Im Gegensatz zu dem üblichen Brett-Format, das ja von Box zu Box fest verpollt werden muß, werden Nachrichten, die über den ListServer verschickt werden, als private Mail verschickt. Damit können dann auch Wege über Boxen genommen werden, die die Nachrichten entweder nicht bekommen sollen, oder die die Nachrichten nicht als Brett nehmen wollen. Ein anderes Einsatzgebiet wäre das selektive Verschicken von Update-Informationen, wobei man nicht mehr jede Adresse einzeln angeben muß, sondern eine Gruppe einrichtet, die diese Nachricht erhält. Im Einsatz sieht die Arbeitsweise des Listservers etwa folgendermaßen aus: ----------- ----------- ----------- ----------- |Nachricht| |Nachricht| | | | Setup | | an |--- | 1 |------->|LISTSERV |<-------| Datei | |LISTSERV | | | | ^ | | | | ----------- | ----------- | ----------- ----------- | |Nachricht| | ||| | | 2 |---- ||| | | | ^ ||| ----------- | ----------- | ||| | Puffer | | |Nachricht| | ||------------>| | ------>| 3 |---- || | System 1| | | || ----------- ----------- || || ----------- || | Puffer | |------------->| | | | System 2| | ----------- | : | ----------- | | Puffer | -------------->| | | System n| ----------- Nachrichten können auch von Listserver zu Listserver geschickt werden, auf diese Weise wird die Größe der Netcall-Puffer etwas reduziert. Daher sollte man nach dem Einrichten einer neuen Liste, die im Netz eine größere Anzahl von Interessenten hat, die Sysops anderer Boxen informieren, diese Liste ebenfalls einzurichten, um so die Zahl der über das Netz zu verschickenden Nachrichten zu reduzieren. Außerdem muß natürlich dafür gesorgt werden, daß nicht verschiedene Gruppen die gleiche Kennung erhalten. Nachrichten, die an den Listserver geschickt werden, müssen als erste zwei Zeichen des Betreffs die Kennung der Gruppe haben, an die die Nachricht gehen soll. Außerdem kann man an den Listserver noch Befehle schicken, die mit einem `!' eingeleitet werden. Geplant sind für die zweite Release folgende Befehle: !LIST Listet alle lokalen Gruppen. Nicht gelistet werden Gruppen, die mittels einer Flag vorm Listen geschützt sind. Neben der Kennung und dem Name der Gruppe wird auch eine Kurzbeschreibung verschickt. !USER Mit diesem Befehl listet man die User, die in einer Gruppe eingetragen sind. Die übernächste Release soll dann noch folgende Befehle enthalten: !SUB Hiermit trägt man sich in eine Gruppe ein. !DEL Und hiermit wieder aus. !MYINFO Dies listet die Gruppen, die man geschickt bekommt, und auf welchem Weg die Nachrichten geschickt werden. Installation und Inbetriebnahme Als ersten Schritt muß man den User `ListServ' eintragen (Passwort nicht vergessen). Diesen kann man ruhig auf Level 0 ohne Netzzugriff und ohne Gruppenzuordnung eintragen, da ListServ auf diese Rechte nicht achtet. Defaultmäßig verwendet ListServ das File `s:euro.defslc', um verschiedene Daten der Mailbox abzufragen. Hat man die Einstellungen in anderen Files, so muß man ListServ ein wenig patchen, am besten mit NewZap oder ähnlichen File-Editoren. Ich habe hinter dem Filenamen einige Zeichen Platz gelassen, um auch längere Namen unterbringen zu können. Achtung! Das Null-Byte hinter dem Namen nicht vergessen! Nun kopiert man ListServ irgendwo hin, zum Beispiel in das Euromail- Verzeichnis. Im nächsten Schritt muß man im persönlichen Directory von ListServ mit einem Editor das File `setup' erzeugen, das folgendermaßen aufgebaut sein muß: - Zeilen mit einem `#' am Anfang werden ignoriert. - Zeilen beginnen grundsätzlich mit einem 3-Zeichen-Befehl, gefolgt von einem TAB sowie einem oder zwei Paramtern, die ebenfalls durch ein TAB getrennt sind. Folgende Befehle kennt ListServ 1.0: DEF Default-Pfad. Eigentlich nur dafür da, daß man Nachrichten, die über einen Haupt-Server geroutet werden, kürzer eingetragen werden können. Parameter: Name des Rout-Systems. LST Leitet eine neue Gruppe ein. Parameter: Der Gruppen-Name, zur Zeit noch ohne Bedeutung. SHC Definiert die Kennung einer Gruppe. Bezieht sich jeweils auf die Gruppe, die zuletzt mit LST definiert wurde. Parameter: Zwei Zeichen, Case-Sensitive. DSC Definiert eine ein-zeilige Beschreibung der Gruppe. Bisher eben- falls noch nicht verwendet. Bezieht sich ebenfalls auf die letzte Liste. Parameter: bis zu 74 Zeichen Beschreibung. USR Hiermit richtet man einen Empfänger ein. 1. Parameter: Adresse des Empfängers. 2. Parameter: Rout-System. Ist Rout-System = Empfänger-System, so darf man nur den Namen des Empfängers, nicht aber den Systemnamen anhängen. Die Zeile: USR SYSOP@FULMIN FULMIN wäre also falsch, richtig wäre: USR SYSOP FULMIN Entsprechendes gilt auch für Listserver, die als ganz normale User eingetragen werden. Als zweiter Parameter werden auch noch zwei Sonderzeichen verstanden: `#' steht für das Default-System (siehe `DEF'), und `-' für das eigene System. Nachrichten an das eigene System werden dabei in den Puffer `local.puffer' abgelegt und sollten per Timer oder Cron ein paar Mal am Tag einsortiert werden... Zu diesem Zweck muß das eigene System in der Netzliste eingetragen werden. ENDL Mit diesem 4-Buchstaben-Befehl beendet man das Einlesen des Files. Alles, was nach diesem Befehl kommt, wird ignoriert. Getting to work... Wenn ListServ Nachrichten verschickt, so werden diese direkt an die jeweiligen Puffer der Empfängersystem angehangen. Geht eine Nachricht an einen `normalen' User, so werden die zwei Zeichen Kennung am Anfang des Betreffs entfernt, der Mail sieht man nicht mehr an, daß Listserv sie verschickt hat. Wird die Nachricht an einen anderen Listserver geschickt, so wird die Kennnung beibehalten, da sonst der andere Listserver nicht in der Lage wäre, die richtige Gruppe zu finden und die Nachricht somit unbearbeitet bliebe. Damit der Listserver neue Nachrichte möglichst bald verarbeitet, kann man ihn entweder per Script (das Beispielsweise den Namen `EM-Master' erhalten könnte) oder durch einen Cron-Task aufrufen. Letztere Methode hat jedoch ein gewisses Risiko, da es hierbei passieren könnte, daß sowohl ListServ als auch ImpZer oder EM gleichzeitig auf den selben Puffer zugreifen. So gesehen ist die sicherste Lösung wohl ein Einbau als EM-Master (in dem Script sollte man dann jedoch nicht vergessen, auch den Original-EM-Master aufzurufen). Auch wäre es hierbei möglich, gleich auch ImpZer auf den local.puffer loszulassen... muß man mal testen... Nachrichten, die ListServ erfolgreich verarbeitet hat, werden in der Message Liste von ListServ als Gelesen und Gelöscht markiert. Dadurch sind sie beim nächsten `crunch persfach' weg. To Do... ListServ verschickt im Moment nur und ausschließlich TXT-Nachrichten. In der nächsten Release werde ich wohl dann auch binäre Mails verteilen, mal abwarten... Eine Bitte zum Abschluß... Jede Box, die ListServ installiert, sollte die Gruppe ListServer, Kennung `LS', eintragen, und diese jeweils von der jeweils nächsten Server-Box beziehen (und natürlich auch weiterverteilen). Diese Gruppe möchte ich zum einen zum Support, aber auch zum Testen haben. Des weiteren kann man über dieser Liste Infos über neue Listen verschicken. Außerdem bitte ich, mir eine kurze Mail zu schicken, sobald ListServ eingetragen ist (bitte zusammen mit den Boxen, von denen man ListServ-Mails erhält und verschickt). Wenn's Probleme gibt... Falls Probleme mit ListServ auftreten, so bin ich jederzeit als SYSOP@INSIDER zu erreichen. ListServ ist FreeWare. Das Kopieren oder verschicken per Modem auf nicht-kommerzieller Basis ist erlaubt. Es darf ebenfalls auch auf den Disketten zu Euromail enthalten sein, sofern Programm und Dokumentation vollständig sind. Revision History 1.0 erste Version, nur Test bei TREFF und BDB. Keine Rekursionskontrolle. 1.1 erste oeffentliche Version. Jetzt mit Rekursionskontrolle. (18.5.91) 1.2 Da die Rekursionskontrolle noch nicht klappt, weil ich den (23.5.91) Rout-String nicht erweitert habe, kommt mit dieser Version endlich eine funktionierende Rekursion-Kontrolle... 1.3 Ich liebe EuroMail... :-( Da wird geprüft, ob Nachrichten an (25.5.91) verschiedene Empfänger die gleiche Message ID haben. Wenn ja, dann wird die Mail nicht verschickt. Daher ein kleiner Patch, der vielleicht einige Nicht-EMs mögen werden, denn ich erhöhe bei jeder nicht-ListServ-Mail das erste Zeichen der Message ID um eins... Das sollte zumindest vorerst laufen...