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 >
OS/2 REXX Batch file  |  1993-06-13  |  6KB  |  196 lines

  1.  
  2. /* $VER: SendMails.adm 1.0 (12.6.93)
  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. Z-Netz-Mails werden bei diesem Script
  12.    via UUCP-Gate exportiert.
  13.  
  14.    Folgende "Formate" der EMail-Adressen werden von diesem Script
  15.    erkannt:
  16.  
  17.    Fido:                            Beispiel:
  18.    -----
  19.      FIDO=z:n/f.p                     FIDO=2:242/7.9
  20.      FIDO=z:n/f.p@Fidonet             FIDO=2:242/7.9@Fidonet
  21.      FIDO=realname@z:n/f.p            FIDO=Joe Fool@2:242/7.9
  22.      FIDO=realname@z:n/f.p@Fidonet    FIDO=Joe Fool@2:242/7.9@Fidonet
  23.      z:n/f.p@Fidonet                  2:242/7.9@Fidonet
  24.      realname@z:n/f.p@Fidonet         Joe Fool@2:242/7.9@Fidonet
  25.  
  26.    Anmerkungen:
  27.  
  28.    ╖ Als "Realname" wird, wenn nicht angegeben, der Vor- und Zuname
  29.      der Adresse genommen.
  30.    ╖ Ausgabeformat ist "z:n/f.p@Fidonet"
  31.  
  32.  
  33.    Z-Netz:                          Beispiel:
  34.    -------
  35.      ZER=NAME@SYSTEM.ZER              ZER=J.FOOBAR@FOOLS.ZER
  36.      NAME@SYSTEM.ZER                  J.FOOBAR@FOOLS.ZER
  37.  
  38.    Anmerkungen:
  39.  
  40.    ╖ Als Realname wird der in der Adresse enthaltene Username
  41.      ⁿbernommen. (wie hier z.B. J.FOOBAR).
  42.    ╖ In diesem Script werden Fido-Nachrichten ⁿber UUCP gegated,
  43.      d.h. es wird mit ZER.SUB.ORG per UMS2UUCP exportiert.
  44.  
  45.  
  46.    UUCP/UseNet:
  47.    ------------
  48.  
  49.      Alle Nachrichten, die _nicht_ in oben genannte Schemata passen,
  50.      werden von diesem Script als UUCP-Mails/News verschickt.
  51.  
  52. */
  53.  
  54. /*----------------------------------------------------------------------
  55.    HAUPTPROGRAMM: Adressen auslesen
  56. ----------------------------------------------------------------------*/
  57.  
  58. ADDRESS ADM.1                /* Dies entfernen, wenn von ADM gestartet */
  59.  
  60. OPTIONS RESULTS
  61.  
  62. ACTIVATEFIRST                /* Ersten Eintrag aktivieren */
  63. ADDRINMEM
  64. numAdr = RESULT              /* Anzahl der EintrΣge fⁿr Schleife */
  65.  
  66. DO FOR numAdr
  67.  
  68.     /* Flag-Abfrage: z.B. IF ADM.flags > 0 THEN DO */
  69.  
  70.        GETADDRESS ADM            /* Hole Adresse */
  71.  
  72.        txt = ADM.EMAIL1          /* Bearbeite EMail-Feld 1 */
  73.        CALL SendMail
  74.        txt = ADM.EMAIL2          /* Bearbeite EMail-Feld 2 */
  75.        CALL SendMail
  76.  
  77.     /* Flag-Abfrage: END  fⁿr IF ADM.flags ... THEN DO */
  78.  
  79.     ACTIVATENEXT              /* NΣchste Adresse */
  80. END
  81.  
  82. EXIT                         /* Ende */
  83.  
  84.  
  85. /*----------------------------------------------------------------------
  86.    UNTERPROGRAMM: EMail schreiben
  87. ----------------------------------------------------------------------*/
  88.  
  89. SendMail:
  90.    msg = FALSE
  91.  
  92.    IF txt ~= "" THEN DO      /* Wenn ⁿberhaupt EMail-Text vorhanden */
  93.  
  94.       pos = POS("=",txt)     /* Wenn mit ZER=, FIDO= oder UUCP= ein- */
  95.                              /*                          getragen... */
  96.  
  97.       IF pos > 0 THEN DO     /* ... Netz herausfinden und von Adresse */
  98.          net = STRIP(SUBSTR(txt,1,pos-1))                  /* trennen */
  99.          adr = STRIP(SUBSTR(txt,pos+1,LENGTH(txt)-pos))
  100.       END
  101.       ELSE DO                /* andernfalls: Herausfinden, welches Netz */
  102.          adr = ""
  103.  
  104.          pos = POS("@Fidonet",txt)   /* Endung "@Fidonet"? */
  105.          IF pos>0 THEN DO
  106.             net = "FIDO"
  107.             adr = STRIP(txt)
  108.          END
  109.  
  110.          pos = POS(".ZER",txt)       /* Endung ".ZER"? */
  111.          IF pos=LENGTH(txt)-3 THEN DO
  112.             net = "ZER"
  113.             adr = STRIP(txt)
  114.          END
  115.  
  116.          IF adr="" THEN DO           /* Ansonsten UUCP */
  117.             net = "UUCP"
  118.             adr = STRIP(txt)
  119.          END
  120.  
  121.       END
  122.  
  123.       IF net="FIDO" THEN DO          /* FIDO: Realname vorhanden? */
  124.          pos = POS(":",adr)
  125.  
  126.                                      /* wenn nicht -> aus ADM-Adresse */
  127.          IF pos < 3 THEN DO
  128.             name = ADM.firstName ADM.lastName
  129.             IF POS("@Fidonet",adr) < 1 THEN adr = adr || "@Fidonet"
  130.          END
  131.          ELSE DO                     /* Sonst Namen herausschneiden */
  132.             pos  = POS("@",adr)
  133.             name = STRIP(SUBSTR(adr,1,pos-1))
  134.             adr  = STRIP(SUBSTR(adr,pos+1,LENGTH(txt)-pos-1)) || "@Fidonet"
  135.          END
  136.  
  137.          SAY "FIDONET: " name "--" adr
  138.          msg = TRUE
  139.       END
  140.  
  141.       IF net="ZER"  THEN DO         /* ZERBERUS: */
  142.          pos = POS("@",adr)
  143.          name = STRIP(SUBSTR(adr,1,pos-1)) /* NAME/ALIAS heraustrennen */
  144.          adr = adr || ".sub.org"           /* .sub.org anhΣngen */
  145.                                            /* fⁿr UUCP-Gate */
  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,"ToPath" 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.