/* $VER: Start_Verteiler.zprx V1.00 (18-May-95) Copyright (c) Nils Görs Verteiler Copyright (c) 1995 by Thomas Eicher [Diese Version benoetigt ZPoint beta 37.191 oder spaeter. This version requires ZPoint beta 37.191 or later. --Tom] FUNKTIONSBESCHREIBUNG: Dieses Skript wurde speziell für das Programm VerteilerVerwaltung, kurz VV, zwecks Anbindung an Zodiac's Point entwickelt. Dieses Skript dient lediglich der Auswertung- und Versendung von Nachrichten an mehrere Empfänger, die mittels `VV' ausgewählt wurden. BENUTZUNG: Schreiben und versenden Sie Ihre Nachrichten wie bisher. Tragen Sie aber anstelle aller Empfänger, an die Sie diese Nachricht senden möchten, lediglich einen ein. Hierbei hat es sich bewährt, die eigenen Adresse oder J.Random@meine.Domain einzusetzen. Dies hat den Zweck, falls Sie vergessen sollten die Adresse zu ändern, damit die Nachricht nicht ungewollt in der ganzen Welt auf wanderschaft geht. Begeben Sie sich dann in das Spool-Brett, wählen dort die entsprechende Nachricht aus und starten Sie dieses ARexx-Skript. Es wird dann das Programm `VV' gestartet, wo Sie ganz bequem Ihre Verteilerlisten erstellen, editieren, löschen und zum versenden von Nachrichten bereitstellen können. Start_Verteiler.zprx wertet dann zum einen die Orignalnachricht aus, zum anderen generiert das Skript eine neue Nachricht. Diese neue Nachricht weist natürlich die selben Attribute vor wie die Originalnachricht. Zusätzlich werden dann zu der Nachricht, die verschiedenen Empfänger beigefügt. INSTALLATION: Kopieren Sie bitte das Hauptprogramm, 'VV' in das Tools-Verzeichnis von Zodiac's Point. Dieses ARexx-Skript gehört in das Rexx-Verzeichnis von Zodiac's Point. Um das Programm nun über eine Funktionstaste starten zu können müssen Sie folgenden Eintrag in die Datei `fkeys.zp' hinzufügen. F1:SYS:Rexxc/RX ZPOINT:Rexx/Start_Verteiler.zprx %s Alternativ hierzu haben Sie aber auch die Möglichkeit das Programm aus dem Pulldown-Menu aufzurufen. Dazu müssen Sie lediglich einen neuen Eintrag in die Datei `usermenus.zp' machen: *Nachrichtenverteiler Sys:Rexxc/RX ZPoint:Rexx/Start_Verteiler.zprx %s Sie erreichen die Autoren wie folgt: t.eicher@hsp.zer.de N.Goers@Art-Line.Art-Line.de Das Programm Verteiler, welches mit diesem Skript gestartet wird, benötigt die "triton.library" >=V1.2 Triton is (C) by Stefan Zeiger */ /*---------------------------------------------------------------- -Ab hier können Sie das Skript nach Ihren Bedürfnissen anpassen- ----------------------------------------------------------------*/ /* wo befindet sich das Hauptprogramm ?? */ Verteiler.main = "zpoint:tools/verteiler" /*----------------------------------------------------------------*/ /* wo befindet sich die Database (default: progdir:verteiler.database) */ DataBase = "progdir:verteiler.database" /*----------------------------------------------------------------*/ /* wo ist die Datei mit den Empfängern (Verteilerliste)? */ RCVFILE.main = "t:RCVFILE" /*----------------------------------------------------------------*/ /* zum Auslagern evtl. Daten (Binär- und oder Textnachrichten) */ Datei.Tmp = "t:Out.tmp" /*----------------------------------------------------------------*/ /* Erlaubte Optionen: PERSONAL unterbindet, daß im Kopf der Nachricht vermerkt wird, wer alles Kopien dieser Nachricht erhalten hat. ARCHIVE Nachricht versenden und im Nachrichtenarchiv speichern. COOKIE Cookie anhängen (nur bei Textnachrichten). Beispiele: wopts = 'PERSONAL ' ~Bitte beachten Sie dieses Freizeichen! wopts = 'COOKIE ARCHIVE ' */ wopts = '' /*----------------------------------------------------------------*/ /* Originalnachricht wird gelöschen ?? 1 = mit Sicherheitsabfrage 0 = ohne Sicherheitsabfrage */ DelImmer = 0 /*----------------------------------------------------------------*/ /* In welcher Sprache möchten Sie arbeiten ?? Möglichkeiten: deutsch english */ Sprache = "deutsch" /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Bitte geben Sie hier ihre Präferenzen ein ! * *******************************************************************/ /******************************************************************* * Bitte unterhalb dieser Zeile nichts mehr verändern! * *******************************************************************/ NL = '0a'x None = "-NONE-" Bezug = "BEZ" Crypto = "CRYPT" Diskussion = "Diskussion-in" Empfangsbest = "EB" PGPSignatur = "PGP-SIG" Anf = '"' Space = ' ' /* Hier sind die Texte in den unterschiedlichen Sprachen. Falls Sie diese Texte in eine andere Sprache übersetzen sollten, dann senden Sie mir die übersetzten Texte doch bitte zu. */ deutsch.text0 = '"Verteiler läuft!"' english.text0 = '"Verteiler is running!"' deutsch.text1 = "Bitte begeben Sie sich"NL, "in das Spool-Brett!" english.text1 = "Please go into the Spool-Area" deutsch.text2 = "Empfangsbestätigungen und Kontrollnachrichten"NL, "können nicht bearbeitet werden!" english.text2 = "receive receptions and controlmessages"NL, "can not be handled!" deutsch.text3 = "Fehler beim Start von Verteiler!" english.text3 = "error while opening 'Verteiler!'" deutsch.text4 = "Sie haben abgebrochen. Die Nachricht wird"NL, "weiterhin nur an den Originalempfänger gesendet." english.text4 = "You have canceled. The message will"NL, "be send to the main receiver, only." deutsch.text5 = "Fehler beim Speichern!" english.text5 = "error while saving!" deutsch.text6 = "Kann Nachricht nicht verschicken!" english.text6 = "Couln't send message!" deutsch.text7 = "Nachricht wurde verschickt." english.text7 = "Message is on the way, now." deutsch.text8 = "Soll die Ursprungsnachricht gelöscht werden?" english.text8 = "Shall I delete the original message?" deutsch.text9 = "kodierte Nachrichten können z.Zt. nicht"NL, "bearbeitet werden!" english.text9 = "At the moment it's not possible to handle"NL, "crypted messages!" deutsch.text10 = "Bitte die erneute QPC-Passwortabfrage"NL, "abbrechen, bzw. nur RETURN drücken!" english.text10 = "Please cancel the upcoming QPC-passwortrequester", "or simply press return, ONLY!" OPTIONS RESULTS /* ------ von welchem ZP Port wurde das Script aufgerufen ? ------ */ PARSE ARG zpPort IF zpPort == "" THEN zpPort = "ZPoint" ADDRESS VALUE zpPort /* ------------- Dieses Skript läuft erst ab V37.191 ------------- */ WHICHVERSION IF RESULT < "37.191" THEN DO REQUESTNOTIFY "Dieses Skript benötigt mind. die Zodiac's Point 37.191 (15.5.95)" EXIT END /* --- Dieses Skript darf nur im Spool-Brett ausgeführt werden --- */ WHICHLEVEL IF Result ~= "BOARD" then DO Text1 = VALUE(sprache||.text1); REQUESTNOTIFY Text1; EXIT END BOARDINFO LABEL; BOARDLABEL=Result IF INDEX(Boardlabel,'(Spool') == 0 THEN DO Text1 = VALUE(sprache||.text1); REQUESTNOTIFY Text1; EXIT END /****************************** * hier ist das Hauptprogramm * ******************************/ _Main: MESSAGEINFO STATUS IF RESULT == "CTL,EB" THEN DO /* Kontrollnachricht! */ Text1 = VALUE(sprache||.text2); REQUESTNOTIFY Text1; EXIT END /* Ist die Nachricht kodiert worden (QPC bzw. PGP) ? */ FINDHEADER Crypto IF RESULT ~= None THEN DO IF RESULT == "QPC" THEN DO Text1 = VALUE(sprache||.text10); REQUESTNOTIFY Text1 CALL _SendMails END Text1 = VALUE(sprache||.text9); REQUESTNOTIFY Text1; EXIT END _SendMails: text1 = VALUE(sprache||.text0) "guilock text="text1 IF ~EXISTS(RCVFile.main||zpPort) THEN ADDRESS COMMAND 'delete' Datei.tmp||zpPort '>NIL:' ADDRESS COMMAND Verteiler.main 'DB='Database, 'INTO='RCVFILE.main||zpPort, 'PB='zpPort IF (RC) ~= 0 THEN DO /* Fehler beim öffnen von Verteiler */ Text1 = VALUE(sprache||.text3); REQUESTNOTIFY Text1; EXIT END; ELSE IF ~EXISTS(RCVFile.main||zpPort) THEN DO Text1 = VALUE(sprache||.text4); REQUESTNOTIFY Text1 EXIT; END MESSAGEINFO POSITION /* an der wievielten Position befindet sich die MailPosition=RESULT Originalnachricht ? */ /* Es wird nach Empfänger, Betreff, Diskussion in, PGP-Signatur und Empfangsbestätigung gesucht. Es wird lediglich bis zum Textkörper durchsucht */ MESSAGEINFO RECEIVER ReceiverName=RESULT MESSAGEINFO FULLSUBJECT SubjectName=RESULT FINDHEADER Diskussion IF RESULT ~= None THEN wopts = wopts||Space||'FOLLOWUP '||Anf||RESULT||Anf FINDHEADER Empfangsbest IF RESULT ~= None THEN wopts = wopts||Space||'CONFIRM' FINDHEADER PGPSIGNATUR IF RESULT ~= None THEN wopts = wopts||Space||'PGPSIG' FINDHEADER ALL Bezug IF RESULT ~= None THEN wopts = wopts||Space||'REFERENCES '||Anf||RESULT||Anf MESSAGEINFO TYPE IF RESULT == "BINARY" THEN wopts = wopts||space||'BINARY' SAVEMESSAGEBODY Datei.tmp||zpPort IF (RC) == 0 THEN DO Text1 = VALUE(sprache||.text5); REQUESTNOTIFY Text1 CALL _DeleteTemps END WRITEMESSAGE Datei.tmp||zpPort, 'RECEIVER' ReceiverName, 'SUBJECT' Anf||SubjectName||Anf, 'RCVFILE' RCVFILE.main||zpPort, wopts id = RESULT /* Hat das versenden geklappt ? */ IF (id = '') THEN DO /* Hups! Fehler! */ Text1 = VALUE(sprache||.text6); REQUESTNOTIFY Text1 CALL _DeleteTemps END ELSE /* Alles klar! */ Text1 = VALUE(sprache||.text7); REQUESTNOTIFY Text1 IF DelImmer ~= 0 THEN /* Soll nachgefragt werden? */ DO /* Soll die Nachricht gelöscht werden ? */ Text1 = VALUE(sprache||.text8); REQUESTRESPONSE Text1 END IF RC = 1 THEN /* Wenn 1, dann Nachricht löschen! */ DO JUMPTOMESSAGE MailPosition; DELETE ONE; DOWN CALL _DeleteTemps END _DeleteTemps: ADDRESS COMMAND 'delete' RCVFILE.main||zpPort '>NIL:' ADDRESS COMMAND 'delete' Datei.tmp||zpPort '>NIL:' guilock off /* Die GUI wieder freigeben! */ EXIT /* EOS */ Mfg, Nils -- Once bitten, twice shy.