home *** CD-ROM | disk | FTP | other *** search
- /* $VER: SendMails.adm 1.1 (6.1.94)
-
- Written by Jan Geissler.
-
- Schreibt an alle, die eine EMail-Adresse angegeben haben, eine
- EMail. (Mögliche Erweiterung: Nur an die, bei denen ein bestimmtes
- Flag gesetzt ist)
-
- Hier werden das MessageSystem UMS sowie Befehle von "Stuntzis
- UMS Tools" verwendet.
-
- Folgende "Formate" der EMail-Adressen werden von diesem Script
- erkannt:
-
- Fido: Beispiel:
- -----
- FIDO=z:n/f.p FIDO=2:242/7.9
- FIDO=z:n/f.p@Fidonet FIDO=2:242/7.9@Fidonet
- FIDO=realname@z:n/f.p FIDO=Joe Fool@2:242/7.9
- FIDO=realname@z:n/f.p@Fidonet FIDO=Joe Fool@2:242/7.9@Fidonet
- z:n/f.p@Fidonet 2:242/7.9@Fidonet
- realname@z:n/f.p@Fidonet Joe Fool@2:242/7.9@Fidonet
-
- Anmerkungen:
-
- · Als "Realname" wird, wenn nicht angegeben, der Vor- und Zuname
- der Adresse genommen.
- · Ausgabeformat ist "z:n/f.p@Fidonet"
-
- Z-Netz: Beispiel:
- -------
- ZER=NAME@SYSTEM.ZER ZER=J.FOOBAR@FOOLS.ZER
- NAME@SYSTEM.ZER J.FOOBAR@FOOLS.ZER
-
- Anmerkungen:
-
- · Als Realname wird der in der Adresse enthaltene Username
- übernommen. (wie hier z.B. J.FOOBAR).
-
- UUCP/UseNet:
- ------------
-
- Alle Nachrichten, die _nicht_ in oben genannte Schemata passen,
- werden von diesem Script als UUCP-Mails/News verschickt.
-
- History:
- ========
- 1.0 [jan] 12.06.93 Erstes Release.
- 1.1 [jan] 06.01.94 Anpassung SUMSWrite 2.3: ToPath -> ToAddr.
- UUCP-Zerberus-Gate entfernt.
-
-
- */
-
- /*----------------------------------------------------------------------
- HAUPTPROGRAMM: Adressen auslesen
- ----------------------------------------------------------------------*/
-
- ADDRESS ADM.1 /* Dies entfernen, wenn von ADM gestartet */
-
- OPTIONS RESULTS
-
- ACTIVATEFIRST /* Ersten Eintrag aktivieren */
- ADDRINMEM
- numAdr = RESULT /* Anzahl der Einträge für Schleife */
-
- DO FOR numAdr
-
- /* Flag-Abfrage: z.B. IF ADM.flags > 0 THEN DO */
-
- GETADDRESS ADM /* Hole Adresse */
-
- txt = ADM.EMAIL1 /* Bearbeite EMail-Feld 1 */
- CALL SendMail
- txt = ADM.EMAIL2 /* Bearbeite EMail-Feld 2 */
- CALL SendMail
-
- /* Flag-Abfrage: END für IF ADM.flags ... THEN DO */
-
- ACTIVATENEXT /* Nächste Adresse */
- END
-
- EXIT /* Ende */
-
-
- /*----------------------------------------------------------------------
- UNTERPROGRAMM: EMail schreiben
- ----------------------------------------------------------------------*/
-
- SendMail:
- msg = FALSE
-
- IF txt ~= "" THEN DO /* Wenn überhaupt EMail-Text vorhanden */
-
- pos = POS("=",txt) /* Wenn mit ZER=, FIDO= oder UUCP= ein- */
- /* getragen... */
-
- IF pos > 0 THEN DO /* ... Netz herausfinden und von Adresse */
- net = STRIP(SUBSTR(txt,1,pos-1)) /* trennen */
- adr = STRIP(SUBSTR(txt,pos+1,LENGTH(txt)-pos))
- END
- ELSE DO /* andernfalls: Herausfinden, welches Netz */
- adr = ""
-
- pos = POS("@Fidonet",txt) /* Endung "@Fidonet"? */
- IF pos>0 THEN DO
- net = "FIDO"
- adr = STRIP(txt)
- END
-
- pos = POS(".ZER",txt) /* Endung ".ZER"? */
- IF pos=LENGTH(txt)-3 THEN DO
- net = "ZER"
- adr = STRIP(txt)
- END
-
- IF adr="" THEN DO /* Ansonsten UUCP */
- net = "UUCP"
- adr = STRIP(txt)
- END
-
- END
-
- IF net="FIDO" THEN DO /* FIDO: Realname vorhanden? */
- pos = POS(":",adr)
-
- /* wenn nicht -> aus ADM-Adresse */
- IF pos < 3 THEN DO
- name = ADM.firstName ADM.lastName
- IF POS("@Fidonet",adr) < 1 THEN adr = adr || "@Fidonet"
- END
- ELSE DO /* Sonst Namen herausschneiden */
- pos = POS("@",adr)
- name = STRIP(SUBSTR(adr,1,pos-1))
- adr = STRIP(SUBSTR(adr,pos+1,LENGTH(txt)-pos-1)) || "@Fidonet"
- END
-
- SAY "FIDONET: " name "--" adr
- msg = TRUE
- END
-
- IF net="ZER" THEN DO /* ZERBERUS: */
- pos = POS("@",adr)
- name = STRIP(SUBSTR(adr,1,pos-1)) /* NAME/ALIAS heraustrennen */
- SAY "ZERBERUS:" name "--" adr
-
- msg = TRUE
- END
-
- IF net="UUCP" THEN DO /* UUCP= angegeben? */
- name = STRIP(ADM.firstName ADM.lastName)
- SAY "USENET: " name "--" adr
- msg = TRUE
- END
-
- IF msg = FALSE THEN DO /* Ansonsten: Nachricht ist UUCP */
- name = STRIP(ADM.firstName ADM.lastName)
- /* adr = adr */
- END
-
-
- /* Message-Erzeugung:
-
- Das Script erstellt eine temporäre Datei, in der der Messagetext
- und für "sumswrite" nötige Schlüsselwörter enthalten sind.
- Danach wird "sumswrite" gestartet.
-
- Bei anderen Messagereadern muß der Teil geändert werden - je nach
- Vorhandensein eines ARexx-Ports... aber außer UMS ist eh kaum ein
- Programm für mehrere Netze geeignet... :) */
-
-
- IF ~OPEN(datei,"ram:admtmpmsg","W") THEN DO /* Ausgabedatei öffnen */
- SAY "Kann Ausgabedatei nicht öffnen!"
- EXIT
- END
-
- ok = WRITELN(datei,"ToName" name)
- ok = WRITELN(datei,"ToAddr" adr)
- ok = WRITELN(datei,"Subject" "Hier Betreff einfügen")
- ok = WRITELN(datei,"Organization" "Hier Origin einfügen")
- ok = WRITELN(datei,"-----------------------------------------------")
-
- ok = WRITELN(datei,"Text")
- ok = WRITELN(datei,"Text")
-
- ok = CLOSE(datei) /* Datei schließen */
-
- cmd = "sumswrite jan jg <ram:admtmpmsg" /* SUMSWRITE starten */
- ADDRESS COMMAND cmd
-
- END
-
- RETURN
-