home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 2: PC
/
frozenfish_august_1995.bin
/
bbs
/
d09xx
/
d0970.lha
/
ADM
/
ARexx
/
SendMails.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1993-06-13
|
6KB
|
196 lines
/* $VER: SendMails.adm 1.0 (12.6.93)
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. Z-Netz-Mails werden bei diesem Script
via UUCP-Gate exportiert.
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).
╖ In diesem Script werden Fido-Nachrichten ⁿber UUCP gegated,
d.h. es wird mit ZER.SUB.ORG per UMS2UUCP exportiert.
UUCP/UseNet:
------------
Alle Nachrichten, die _nicht_ in oben genannte Schemata passen,
werden von diesem Script als UUCP-Mails/News verschickt.
*/
/*----------------------------------------------------------------------
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 */
adr = adr || ".sub.org" /* .sub.org anhΣngen */
/* fⁿr UUCP-Gate */
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,"ToPath" 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