home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Database / HF-ADM23.LHA / ADM / ARexx / UMS / sendMails.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1995-06-04  |  5.9 KB  |  195 lines

  1. /* $VER: SendMails.adm 1.1 (6.1.94)
  2.  
  3.    Written by Jan Geissler.
  4.  
  5.    Schreibt an alle, die eine EMail-Adresse angegeben haben, eine
  6.    EMail. (Mögliche Erweiterung: Nur an die, bei denen ein bestimmtes
  7.    Flag gesetzt ist)
  8.  
  9.    Hier werden das MessageSystem UMS sowie Befehle von "Stuntzis
  10.    UMS Tools" verwendet.
  11.  
  12.    Folgende "Formate" der EMail-Adressen werden von diesem Script
  13.    erkannt:
  14.  
  15.    Fido:                            Beispiel:
  16.    -----
  17.      FIDO=z:n/f.p                     FIDO=2:242/7.9
  18.      FIDO=z:n/f.p@Fidonet             FIDO=2:242/7.9@Fidonet
  19.      FIDO=realname@z:n/f.p            FIDO=Joe Fool@2:242/7.9
  20.      FIDO=realname@z:n/f.p@Fidonet    FIDO=Joe Fool@2:242/7.9@Fidonet
  21.      z:n/f.p@Fidonet                  2:242/7.9@Fidonet
  22.      realname@z:n/f.p@Fidonet         Joe Fool@2:242/7.9@Fidonet
  23.  
  24.    Anmerkungen:
  25.  
  26.    · Als "Realname" wird, wenn nicht angegeben, der Vor- und Zuname
  27.      der Adresse genommen.
  28.    · Ausgabeformat ist "z:n/f.p@Fidonet"
  29.  
  30.    Z-Netz:                          Beispiel:
  31.    -------
  32.      ZER=NAME@SYSTEM.ZER              ZER=J.FOOBAR@FOOLS.ZER
  33.      NAME@SYSTEM.ZER                  J.FOOBAR@FOOLS.ZER
  34.  
  35.    Anmerkungen:
  36.  
  37.    · Als Realname wird der in der Adresse enthaltene Username
  38.      übernommen. (wie hier z.B. J.FOOBAR).
  39.  
  40.    UUCP/UseNet:
  41.    ------------
  42.  
  43.      Alle Nachrichten, die _nicht_ in oben genannte Schemata passen,
  44.      werden von diesem Script als UUCP-Mails/News verschickt.
  45.  
  46.    History:
  47.    ========
  48.      1.0  [jan] 12.06.93   Erstes Release.
  49.      1.1  [jan] 06.01.94   Anpassung SUMSWrite 2.3: ToPath -> ToAddr.
  50.                            UUCP-Zerberus-Gate entfernt.
  51.  
  52.  
  53. */
  54.  
  55. /*----------------------------------------------------------------------
  56.    HAUPTPROGRAMM: Adressen auslesen
  57. ----------------------------------------------------------------------*/
  58.  
  59. ADDRESS ADM.1                /* Dies entfernen, wenn von ADM gestartet */
  60.  
  61. OPTIONS RESULTS
  62.  
  63. ACTIVATEFIRST                /* Ersten Eintrag aktivieren */
  64. ADDRINMEM
  65. numAdr = RESULT              /* Anzahl der Einträge für Schleife */
  66.  
  67. DO FOR numAdr
  68.  
  69.     /* Flag-Abfrage: z.B. IF ADM.flags > 0 THEN DO */
  70.  
  71.        GETADDRESS ADM            /* Hole Adresse */
  72.  
  73.        txt = ADM.EMAIL1          /* Bearbeite EMail-Feld 1 */
  74.        CALL SendMail
  75.        txt = ADM.EMAIL2          /* Bearbeite EMail-Feld 2 */
  76.        CALL SendMail
  77.  
  78.     /* Flag-Abfrage: END  für IF ADM.flags ... THEN DO */
  79.  
  80.     ACTIVATENEXT              /* Nächste Adresse */
  81. END
  82.  
  83. EXIT                         /* Ende */
  84.  
  85.  
  86. /*----------------------------------------------------------------------
  87.    UNTERPROGRAMM: EMail schreiben
  88. ----------------------------------------------------------------------*/
  89.  
  90. SendMail:
  91.    msg = FALSE
  92.  
  93.    IF txt ~= "" THEN DO      /* Wenn überhaupt EMail-Text vorhanden */
  94.  
  95.       pos = POS("=",txt)     /* Wenn mit ZER=, FIDO= oder UUCP= ein- */
  96.                              /*                          getragen... */
  97.  
  98.       IF pos > 0 THEN DO     /* ... Netz herausfinden und von Adresse */
  99.          net = STRIP(SUBSTR(txt,1,pos-1))                  /* trennen */
  100.          adr = STRIP(SUBSTR(txt,pos+1,LENGTH(txt)-pos))
  101.       END
  102.       ELSE DO                /* andernfalls: Herausfinden, welches Netz */
  103.          adr = ""
  104.  
  105.          pos = POS("@Fidonet",txt)   /* Endung "@Fidonet"? */
  106.          IF pos>0 THEN DO
  107.             net = "FIDO"
  108.             adr = STRIP(txt)
  109.          END
  110.  
  111.          pos = POS(".ZER",txt)       /* Endung ".ZER"? */
  112.          IF pos=LENGTH(txt)-3 THEN DO
  113.             net = "ZER"
  114.             adr = STRIP(txt)
  115.          END
  116.  
  117.          IF adr="" THEN DO           /* Ansonsten UUCP */
  118.             net = "UUCP"
  119.             adr = STRIP(txt)
  120.          END
  121.  
  122.       END
  123.  
  124.       IF net="FIDO" THEN DO          /* FIDO: Realname vorhanden? */
  125.          pos = POS(":",adr)
  126.  
  127.                                      /* wenn nicht -> aus ADM-Adresse */
  128.          IF pos < 3 THEN DO
  129.             name = ADM.firstName ADM.lastName
  130.             IF POS("@Fidonet",adr) < 1 THEN adr = adr || "@Fidonet"
  131.          END
  132.          ELSE DO                     /* Sonst Namen herausschneiden */
  133.             pos  = POS("@",adr)
  134.             name = STRIP(SUBSTR(adr,1,pos-1))
  135.             adr  = STRIP(SUBSTR(adr,pos+1,LENGTH(txt)-pos-1)) || "@Fidonet"
  136.          END
  137.  
  138.          SAY "FIDONET: " name "--" adr
  139.          msg = TRUE
  140.       END
  141.  
  142.       IF net="ZER"  THEN DO         /* ZERBERUS: */
  143.          pos = POS("@",adr)
  144.          name = STRIP(SUBSTR(adr,1,pos-1)) /* NAME/ALIAS heraustrennen */
  145.          SAY "ZERBERUS:" name "--" adr
  146.  
  147.          msg = TRUE
  148.       END
  149.  
  150.       IF net="UUCP" THEN DO                /* UUCP= angegeben? */
  151.          name = STRIP(ADM.firstName ADM.lastName)
  152.          SAY "USENET:  " name "--" adr
  153.          msg = TRUE
  154.       END
  155.  
  156.       IF msg = FALSE THEN DO               /* Ansonsten: Nachricht ist UUCP */
  157.          name = STRIP(ADM.firstName ADM.lastName)
  158.          /* adr  = adr */
  159.       END
  160.  
  161.  
  162.       /* Message-Erzeugung:
  163.  
  164.          Das Script erstellt eine temporäre Datei, in der der Messagetext
  165.          und für "sumswrite" nötige Schlüsselwörter enthalten sind.
  166.          Danach wird "sumswrite" gestartet.
  167.  
  168.          Bei anderen Messagereadern muß der Teil geändert werden - je nach
  169.          Vorhandensein eines ARexx-Ports... aber außer UMS ist eh kaum ein
  170.          Programm für mehrere Netze geeignet... :)                         */
  171.  
  172.  
  173.       IF ~OPEN(datei,"ram:admtmpmsg","W") THEN DO   /* Ausgabedatei öffnen     */
  174.          SAY "Kann Ausgabedatei nicht öffnen!"
  175.          EXIT
  176.       END
  177.  
  178.       ok = WRITELN(datei,"ToName" name)
  179.       ok = WRITELN(datei,"ToAddr" adr)
  180.       ok = WRITELN(datei,"Subject" "Hier Betreff einfügen")
  181.       ok = WRITELN(datei,"Organization" "Hier Origin einfügen")
  182.       ok = WRITELN(datei,"-----------------------------------------------")
  183.  
  184.       ok = WRITELN(datei,"Text")
  185.       ok = WRITELN(datei,"Text")
  186.  
  187.       ok = CLOSE(datei)                          /* Datei schließen */
  188.  
  189.       cmd = "sumswrite jan jg <ram:admtmpmsg"    /* SUMSWRITE starten */
  190.       ADDRESS COMMAND cmd
  191.  
  192.    END
  193.  
  194. RETURN
  195.