November, 1999

Freedom to Mail from Your 3000, for Free
Three other commandfiles

By Andreas Schmidt

Description:

SENDMAIL    interactive compilation of a message
SENDBACK    batch compilation of a message
SENDFILE    interactive or batch compilation of a message with attachments

Command 1: SENDMAIL

COMMENT                  SendMail/iX
COMMENT
COMMENT version 2.0 [11OCT1999] by Andreas Schmidt
COMMENT
ECHO
ECHO                  Sendmail/iX
ECHO
IF HPSYSNAME = "ALPHA" OR HPSYSNAME = "BETA" THEN
   SETVAR LOC "LOC1"
ELSE
   SETVAR LOC "LOC2"
ENDIF
SETVAR SEND_TO       " "
SETVAR SEND_NAME     "!HPUSER.!HPACCOUNT@!HPSYSNAME.!LOC.COMPANY.COM"
SETVAR REPLY_TO      "!HPUSER.!HPACCOUNT@!HPSYSNAME.!LOC.COMPANY.COM"
SETVAR SEND_MORE     "Y"
SETVAR SEND_FILE_Y_N "N"
SETVAR SEND_EDIT_Y_N "N"
SETVAR SEND_NAME_NUM 1
WHILE SEND_NAME_NUM > 0 DO
   INPUT SEND_NAME;PROMPT="To: [!SEND_NAME] ?"
   SETVAR SEND_TO "!SEND_TO !SEND_NAME"
   INPUT SEND_MORE;PROMPT="More names (y/n) [!SEND_MORE]: ?"
   IF ups("!SEND_MORE") <> "Y" THEN
      SETVAR SEND_NAME_NUM 0
   ENDIF
ENDWHILE
INPUT REPLY_TO;PROMPT="Reply-To: [!REPLY_TO] ?"
INPUT SEND_SUBJECT;PROMPT="Subject: "
INPUT SEND_FILE_Y_N;PROMPT="Do you have a file to send (Y/N) [!SEND_FILE_Y_N]? "

IF ups("!SEND_FILE_Y_N") = "N" THEN
   ECHO
   ECHO Type in your message, and finish with a //
   ECHO (No prompt will be displayed!)
   ECHO
   SETVAR SEND_FILE "X!HPLDEVIN"
   RUN TDP.PUB.SYS;INFO="SET PERMYES;AQ;K X!HPLDEVIN,UNN;E" > $NULL
   INPUT SEND_EDIT_Y_N;PROMPT="Edit of Message needed (Y/N) [!SEND_EDIT_Y_N]?"
   IF ups("!SEND_EDIT_Y_N") = "Y" THEN
      ECHO
      ECHO You will invoke TDP to edit the message.
      ECHO Use normal TDP commands to edit your text.
      ECHO
      RUN TDP.PUB.SYS;INFO="SET PERMYES;T X!HPLDEVIN,UNN;L ALL"
   ENDIF
ELSE
   INPUT SEND_FILE;PROMPT="Message Content (File Name): "
ENDIF
SETVAR XSEND_TO "!SEND_TO"
SETVAR XSEND_SUBJECT "!SEND_SUBJECT"
SETVAR XSEND_FILE "!SEND_FILE"
SETVAR XREPLY_TO "!REPLY_TO"
SETVAR XFROM    "!HPUSER.!HPACCOUNT"
FILE CM;DISC=1000000
ECHO From: "!XFROM"          >  *CM
ECHO To: !XSEND_TO           >> *CM
ECHO Reply-To: !XREPLY_TO    >> *CM
ECHO Subject: !XSEND_SUBJECT >> *CM
ECHO MIME-Version: 1.0       >> *CM
PRINT !XSEND_FILE            >> *CM
ECHO                         >> *CM
SENDMAIL.PUB.SENDMAIL "-f !XFROM !XSEND_TO " < CM
ECHO Done.


[top]

Command 2: SENDBACK

PARM SEND_SUBJECT="" SEND_TO="" SEND_FILE="" REPLY_TO=""
IF "!HPSYSNAME" = "ALPHA" OR "!HPSYSNAME" = "BETA" THEN
   SETVAR LOC "LOC1"
ELSE
   SETVAR LOC "LOC2"
ENDIF
SETVAR XSEND_TO "!SEND_TO"
SETVAR XSEND_SUBJECT "!SEND_SUBJECT"
SETVAR XSEND_FILE "!SEND_FILE"
SETVAR XREPLY_TO "!REPLY_TO"
IF "!REPLY_TO" = "" THEN
   SETVAR XREPLY_TO "!HPUSER.!HPACCOUNT"+"@"+"!HPSYSNAME.!LOC.COMPANY.COM"
ENDIF
IF ( XSEND_TO = "?" OR XSEND_TO = "" OR &
     XSEND_SUBJECT = "" OR XSEND_FILE = "") THEN
   ECHO sendback.xecmd.sys
   ECHO
   ECHO  sendback subject mailto filename [replyto]
   ECHO
   ECHO    subject:   subject of the email message, must be quoted
   ECHO    mailto :   user@domain
   ECHO    filename:  any mpe or posix filename
   ECHO    replyto:   reply address, recommended
   ECHO
   ESCAPE
ENDIF
IF (NOT FINFO("!XSEND_FILE","EXISTS")) THEN
    ECHO sendback.xecmd.sys: !XSEND_FILE not found
    ESCAPE
ENDIF
SETVAR XFROM    "!HPUSER.!HPACCOUNT"
FILE CM;DISC=1000000
ECHO From: "!XFROM"          >  *CM
ECHO To: !XSEND_TO           >> *CM
ECHO Reply-To: !XREPLY_TO    >> *CM
ECHO Subject: !XSEND_SUBJECT >> *CM
ECHO MIME-Version: 1.0       >> *CM
ECHO >> *CM
PRINT !XSEND_FILE            >> *CM
ECHO                         >> *CM
SENDMAIL.PUB.SENDMAIL "-f !XFROM !XSEND_TO " < CM
ECHO Done.


[top]

Command 3: SENDFILE

PARM SUBJECT="" TO="" MSGTEXT="" FILENAME="" REMOTEFILENAME="" REPLYTO="" &
ENTRY="MAIN"

COMMENT This command file will send an email with one or more attachments,
COMMENT including a message text
COMMENT   REMARK: to send mutiple attachments, you must leave the parameter
COMMENT           'FILENAME' empty. As a result, you will prompted to enter
COMMENT           filenames

IF UPS("!ENTRY") = "MAIN"
COMMENT
COMMENT CMD ENTRY: -- MAIN --
COMMENT
   IF "!HPSYSNAME" = "ALPHA" OR "!HPSYSNAME" = "BETA" THEN
      SETVAR LOC "LOC1"
   ELSE
      SETVAR LOC "LOC2"
   ENDIF
   SETVAR XSUBJECT   "!SUBJECT"
   SETVAR XTO        "!TO"
   SETVAR XMSGTEXT   "!MSGTEXT"
   SETVAR XFILENAME  "!FILENAME"
   SETVAR XRFN       "!REMOTEFILENAME"
   IF ( XRFN = "" ) THEN
      SETVAR XRFN "!XFILENAME"
   ENDIF
   SETVAR XREPLYTO "!REPLYTO"
   IF "!REPLYTO" = "" THEN
      SETVAR XREPLYTO "!HPUSER.!HPACCOUNT"+"@"+"!HPSYSNAME.!LOC.COMPANY.COM"
   ENDIF
   IF ( XTO = "?" OR XTO = "" OR XSUBJECT = "" ) THEN
      ECHO sendfile.xecmd.sys
      ECHO
      ECHO  sendfile subject to msgtext filename [remotefilename] [replyto]
      ECHO
      ECHO    subject:        subject of the email message, must be quoted
      ECHO    to:             user@domain
      ECHO    msgtext:        mpe or posix filename, contains the message text
      ECHO    filename:       any mpe or posix filename
      ECHO    remotefilename: name of the file you want to call the attachment
      ECHO    replyto:        reply address, recommended
      ECHO    entry:          value MAIN or ATTACH, only internally used
      ECHO
      ESCAPE
   ENDIF
   IF "!XMSGTEXT" <> ""
      IF NOT FINFO("!XMSGTEXT","EXISTS")
         ECHO sendfile.xecmd.sys: !XMSGTEXT not found
         ESCAPE
      ENDIF
   ENDIF
   IF "!XFILENAME" <> ""
      IF (NOT FINFO("!XFILENAME","EXISTS")) THEN
         ECHO sendfile.xecmd.sys: !XFILENAME not found
         ESCAPE
      ENDIF
   ENDIF
   SETVAR XFROM    "!HPUSER.!HPACCOUNT"
   FILE CM;DISC=1000000
   COMMENT Generate a MIME boundary string.
   SETVAR MAILSPF_SEP rht(rpt('-',36)+"!HPSUSAN!HPPIN!HPCPUMSECS",36)
   COMMENT
   COMMENT Generate all of the message headers.
   COMMENT
   ECHO From: "!XFROM"                             > *CM
   ECHO To: !XTO                                  >> *CM
   ECHO Reply-To: !XREPLYTO                       >> *CM
   ECHO Subject: !XSUBJECT                        >> *CM
   ECHO MIME-Version: 1.0                         >> *CM
   ECHO Content-Description: "MIME Base64 encode" >> *CM
   ECHO Content-Type: multipart/mixed; boundary="!MAILSPF_SEP">> *CM
   ECHO                                                       >> *CM
   COMMENT
   COMMENT Generate the preamble (not normally displayed by MIME mail clients).
   COMMENT
   ECHO This is a multi-part message in MIME format.  >> *CM
   COMMENT
   COMMENT Generate the first body which contains the message output.
   COMMENT
   IF "!XMSGTEXT" <> ""
      ECHO --!MAILSPF_SEP>> *CM
      ECHO Content-Type: text/plain; charset=us-ascii >>*CM
      ECHO Content-Transfer-Encoding: 7bit            >>*CM
      ECHO >> *CM
      PRINT !XMSGTEXT >> *CM
   ENDIF
   IF "!XFILENAME" <> ""
      XEQ !HPFILE ENTRY=ATTACH
   ELSE
      COMMENT
      COMMENT to prompt for more than one attachment
      COMMENT ANSWER has parameters --FILENAME,REMOTEFILENAME--
      COMMENT
      ECHO
      ECHO INFO: Attachment parameters: FILENAME,REMOTEFILENAME
      ECHO
      SETVAR ANSWER "X"
      WHILE ANSWER = "X"
            SETVAR ANSWER ""
            INPUT NAME=ANSWER;PROMPT="Attach file: "
            SETVAR ANSWER LTRIM(ANSWER)
            IF "!ANSWER" <> ""
               SETVAR SSPOS POS(",",ANSWER)
               SETVAR SSLEN LEN(ANSWER)
               IF SSPOS = 0
                  SETVAR XFILENAME "!ANSWER"
                  SETVAR XRFN      "!ANSWER"
               ELSE
                  SETVAR XFILENAME LFT(ANSWER,SSPOS-1)
                  SETVAR XRFN      RHT(ANSWER,SSLEN-SSPOS)
               ENDIF
               IF (NOT FINFO("!XFILENAME","EXISTS")) THEN
                  ECHO sendfile.xecmd.sys: !XFILENAME not found
               ELSE
                  XEQ !HPFILE ENTRY=ATTACH
               ENDIF
               SETVAR ANSWER "X"
            ENDIF
      ENDWHILE
   ENDIF
   ECHO --!MAILSPF_SEP-->> *CM
   COMMENT
   COMMENT Mail the message.
   COMMENT
   XEQ SENDMAIL.PUB.SENDMAIL "-t" < *CM
   ECHO Done.
ELSEIF UPS("!ENTRY") = "ATTACH"
COMMENT
COMMENT CMD ENTRY: -- ATTACH --
COMMENT
   COMMENT
   COMMENT Insert attachment as plain text.
   COMMENT
   ECHO --!MAILSPF_SEP>> *CM
   ECHO Content-Type: text/plain; charset=us-ascii; name="!XRFN" >> *CM
   ECHO Content-Transfer-Encoding: 8bit                          >> *CM
   ECHO Content-Disposition: attachment; filename="!XRFN"        >> *CM
   ECHO  >> *CM
   PRINT !XFILENAME >> *CM
ENDIF

[top]
© Andreas Schmidt, Bubenheim, Germany