November, 1999
Freedom to Mail from Your 3000, for FreeDescription:
| SENDMAIL | interactive compilation of a message | |
|---|---|---|
| SENDBACK | batch compilation of a message | |
| SENDFILE | interactive or batch compilation of a message with attachments |
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.
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.
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