home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / bazy / adm / arexx / adm-arexxmakros.lha / Netze / UMS / WriteMail.adm < prev   
Text File  |  1995-06-04  |  6KB  |  189 lines

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