home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Database / ADM144.lha / ADM / ARexx / SendMails.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1994-07-26  |  5.9 KB  |  196 lines

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