home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Database / ADM144.lha / ADM / ARexx / WriteMail.adm < prev    next >
Encoding:
Text File  |  1994-07-26  |  5.9 KB  |  190 lines

  1.  
  2. /* $VER: WriteMail.adm 1.2 (6.1.94)
  3.  
  4.    Schreiben einer Mail an die akt. ADM-Adresse.
  5.    Zum Benutzen dieses Scripts muß der Editor unten definiert werden.
  6.  
  7.    Hier werden das MessageSystem UMS sowie Befehle von "Stuntzis
  8.    UMS Tools" verwendet. Z-Netz-Mails werden bei diesem Script
  9.    via UUCP-Gate exportiert.
  10.  
  11.    Für eine Erklärung der von diesem Script erkannten EMail-Formate
  12.    siehe Script "SendMails.rexx".
  13.  
  14.    Das Script benötigt die RexxReqTools.library!
  15.  
  16.    HISTORY:
  17.  
  18.    V1.0  [jan]   Erstes Release.
  19.    V1.1  [jan]   Abfrage nun mit der RexxReqTools.library
  20.                  per Requester.
  21.    V1.2  [jan]   Berücksichtigung Zerberus-UUCP-Gate entfernt.
  22.                  Anpassung an SUMSWrite 2.3 (ToPath->ToAddr).
  23.  
  24.    */
  25.  
  26.  
  27. /*----------------------------------------------------------------------
  28.    DEFINITIONEN
  29. ----------------------------------------------------------------------*/
  30.  
  31. editor  = "C:TTX >NIL: wait"      /* Darf sich nicht vom CLI "ablösen"*/
  32.                                   /* = detach                         */
  33.  
  34. sig1    = "Jan"                      /* Unterschrift                  */
  35.  
  36. sig2    = " "                                            /* Signature */
  37. sig3    = "2:2407/106.5@Fidonet, jan@digit.stgt.sub.org"
  38.  
  39. /*----------------------------------------------------------------------
  40.    HAUPTPROGRAMM: Adresse auslesen, Mail schreiben & schicken
  41. ----------------------------------------------------------------------*/
  42.  
  43. OPTIONS RESULTS
  44.  
  45. call addlib("rexxreqtools.library", 0, -30, 0)
  46.  
  47. GETADDRESS ADM                               /* Hole Adresse */
  48.  
  49. IF ADM.EMail2 ~= "" THEN DO                  /* Wenn EMail2 angegeben */
  50.    SAY("1." ADM.EMAIL1)
  51.    SAY("2." ADM.EMAIL2)
  52.    SAY("Welche EMail-Adresse?")              /* Wählen, welche ... */
  53.    PULL num
  54.    IF num=1 THEN txt = ADM.EMAIL1
  55.    ELSE txt = ADM.EMAIL2
  56. END
  57. ELSE DO
  58.    IF ADM.EMail1 = "" THEN DO                /* Wenn auch nicht EMail1 */
  59.       SAY("Keine EMail-Adresse vorhanden!")  /* Fehler! */
  60.       EXIT
  61.    END
  62.    ELSE txt = ADM.EMAIL1                     /* Sonst EMAIL1 nehmen */
  63. END
  64.  
  65. CALL SendMail
  66.  
  67. EXIT                                         /* Ende */
  68.  
  69.  
  70. /*----------------------------------------------------------------------
  71.    UNTERPROGRAMM: EMail schreiben
  72. ----------------------------------------------------------------------*/
  73.  
  74. SendMail:
  75.    msg = FALSE
  76.  
  77.    IF txt ~= "" THEN DO      /* Wenn überhaupt EMail-Text vorhanden */
  78.  
  79.       pos = POS("=",txt)     /* Wenn mit ZER=, FIDO= oder UUCP= ein- */
  80.                              /*                          getragen... */
  81.  
  82.       IF pos > 0 THEN DO     /* ... Netz herausfinden und von Adresse */
  83.          net = STRIP(SUBSTR(txt,1,pos-1))                  /* trennen */
  84.          adr = STRIP(SUBSTR(txt,pos+1,LENGTH(txt)-pos))
  85.       END
  86.       ELSE DO                /* andernfalls: Herausfinden, welches Netz */
  87.          adr = ""
  88.  
  89.          pos = POS("@Fidonet",txt)   /* Endung "@Fidonet"? */
  90.          IF pos>0 THEN DO
  91.             net = "FIDO"
  92.             adr = STRIP(txt)
  93.          END
  94.  
  95.          pos = POS(".ZER",txt)       /* Endung ".ZER"? */
  96.          IF pos=LENGTH(txt)-3 THEN DO
  97.             net = "ZER"
  98.             adr = STRIP(txt)
  99.          END
  100.  
  101.          IF adr="" THEN DO           /* Ansonsten UUCP */
  102.             net = "UUCP"
  103.             adr = STRIP(txt)
  104.          END
  105.  
  106.       END
  107.  
  108.       IF net="FIDO" THEN DO          /* FIDO: Realname vorhanden? */
  109.          pos = POS(":",adr)
  110.  
  111.                                      /* wenn nicht -> aus ADM-Adresse */
  112.          IF pos < 3 THEN DO
  113.             name = ADM.firstName ADM.lastName
  114.             IF POS("@Fidonet",adr) < 1 THEN adr = adr || "@Fidonet"
  115.          END
  116.          ELSE DO                     /* Sonst Namen herausschneiden */
  117.             pos  = POS("@",adr)
  118.             name = STRIP(SUBSTR(adr,1,pos-1))
  119.             adr  = STRIP(SUBSTR(adr,pos+1,LENGTH(txt)-pos-1)) || "@Fidonet"
  120.          END
  121.  
  122.          SAY "FIDONET: " name "--" adr
  123.          msg = TRUE
  124.       END
  125.  
  126.       IF net="ZER"  THEN DO         /* ZERBERUS: */
  127.          pos = POS("@",adr)
  128.          name = STRIP(SUBSTR(adr,1,pos-1)) /* NAME/ALIAS heraustrennen */
  129.          SAY "ZERBERUS:" name "--" adr
  130.          msg = TRUE
  131.       END
  132.  
  133.       IF net="UUCP" THEN DO                /* UUCP= angegeben? */
  134.          name = STRIP(ADM.firstName ADM.lastName)
  135.          SAY "USENET:  " name "--" adr
  136.          msg = TRUE
  137.       END
  138.  
  139.       IF msg = FALSE THEN DO               /* Ansonsten: Nachricht ist UUCP */
  140.          name = STRIP(ADM.firstName ADM.lastName)
  141.          /* adr  = adr */
  142.       END
  143.  
  144.  
  145.       /* Message-Erzeugung:
  146.  
  147.          Das Script erstellt eine temporäre Datei, in der der Messagetext
  148.          und für "sumswrite" nötige Schlüsselwörter enthalten sind.
  149.          Diese wird dann ed(it)iert.
  150.          Danach wird - nach einer Sicherheitsabfrage - "sumswrite" gestartet.
  151.  
  152.       */
  153.  
  154.  
  155.       IF ~OPEN(datei,"ram:admtmpmsg","W") THEN DO   /* Ausgabedatei öffnen     */
  156.          SAY "Kann Ausgabedatei nicht öffnen!"
  157.          EXIT
  158.       END
  159.  
  160.       ok = WRITELN(datei,"ToName" name)
  161.       ok = WRITELN(datei,"ToAddr" adr)
  162.       ok = WRITELN(datei,"Subject")
  163.       ok = WRITELN(datei,"Group NetMail")
  164.       ok = WRITELN(datei,"Organization ADM-Mail")
  165.       ok = WRITELN(datei,"Attributes")
  166.       ok = WRITELN(datei,"-------------------------------------------------------------")
  167.       ok = WRITELN(datei,"Hallo" ADM.firstname || "!")
  168.       ok = WRITELN(datei," ")
  169.       ok = WRITELN(datei,"Bye,")
  170.       ok = WRITELN(datei,sig1)
  171.       ok = WRITELN(datei,sig2)
  172.       ok = WRITELN(datei,sig3)
  173.  
  174.       ok = CLOSE(datei)                          /* Datei schließen */
  175.  
  176.       cmd = editor "ram:admtmpmsg"
  177.       ADDRESS COMMAND cmd
  178.  
  179.       ans = rtezrequest("Nachricht senden?","_Senden|Abbru_ch","ADM-Rexxscript",,"rtez_defaultresponse=1")
  180.  
  181.       IF ans ~= 0 THEN DO
  182.          cmd = "sumswrite jan jg <ram:admtmpmsg"    /* SUMSWRITE starten */
  183.          ADDRESS COMMAND cmd
  184.       END
  185.       ELSE ans = rtezrequest("Nachricht nicht gesendet.","_OK","ADM-Rexxscript",,)
  186.    END
  187.  
  188. RETURN
  189.  
  190.