home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #3
/
amigamamagazinepolishissue1998.iso
/
bazy
/
adm
/
arexx
/
adm-arexxmakros.lha
/
Netze
/
UMS
/
SendMails.adm
next >
Wrap
Text File
|
1995-06-04
|
6KB
|
202 lines
/* $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