home *** CD-ROM | disk | FTP | other *** search
- /* $VER: SendMails.adm 1.1 (13.5.95)
-
- Written by Jan Geißler.
-
- Schreibt an alle, die eine EMail-Adresse angegeben haben, eine
- EMail.
-
- Hier werden das MessageSystem UMS sowie "sumswrite" der "SUMSTools"
- (siehe UMS-Distribution) verwendet. "sumswrite" muß sich im Suchpfad
- befinden.
-
- 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"
-
-
- UUCP/UseNet:
- ------------
-
- Alle Nachrichten, die _nicht_ in oben genannte Schemata passen
- oder mit UUCP=<adresse> anfangen, werden von diesem Script als
- Usenet-Mails verschickt.
-
- 1.0 [jan] - Erstes Release
- 1.1 [jan] 13.5.95 - FileRequester -> Mail auswählen
- - Z-Netz-Support entfernt
-
- */
-
- /*----------------------------------------------------------------------
- HAUPTPROGRAMM: Adressen auslesen
- ----------------------------------------------------------------------*/
-
- OPTIONS RESULTS
-
- /* RexxReqTools-Library öffnen */
-
- reqname = "rexxreqtools.library"
- if ~show("L", reqname) then
- if ~addlib(reqname, 0, -30, 0) then do
- say reqname "not found!"
- EXIT
- end
-
- dir = ""
- file = "Mail"
- title = "Mail-Datei öffnen"
- ok = "Mail laden"
-
- filename = rtfilerequest(dir,file,title,ok)
- if filename = "" then do
- call rtezrequest("Keine Datei ausgewählt", "Abbruch")
- EXIT
- end
-
-
- 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
-
- 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="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
-
- IF ~OPEN(quell,filename,"R") THEN DO /* Ausgabedatei öffnen */
- SAY "Kann Standardmail" dateiname "nicht öffnen!"
- ok = CLOSE(datei)
- EXIT
- END
-
- subject = READLN(quell)
-
- ok = WRITELN(datei,"ToName" name)
- ok = WRITELN(datei,"ToAddr" adr)
-
- ok = WRITELN(datei,"Subject" subject)
- ok = WRITELN(datei,"Organization" "ADM Development")
- ok = WRITELN(datei,"-----------------------------------------------")
- ok = WRITELN(datei,"Hallo" ADM.firstname || "!" )
- ok = WRITELN(datei,"")
-
- DO UNTIL EOF(quell)
- line = "*="
- line = READLN(quell)
- IF line ~= "*=" THEN ok = WRITELN(datei,line)
- END
-
- ok = CLOSE(quell)
- ok = CLOSE(datei) /* Datei schließen */
-
- ADDRESS COMMAND "sumswrite jan jg <ram:admtmpmsg" /* SUMSWRITE starten */
- END
-
- RETURN
-