1 / 23

Sending Email on MVS via SMTP

Sending Email on MVS via SMTP. -Or- You’ve Got Mail! (from the mainframe) -or- Sleepless in SMTP Jon Gibbens jon@provista.com. A Familiar Phone Conversation?. “Hello, this is Jon..” “Yes, this is Steve Bigwig here, did my extracts run last night??”

maine
Télécharger la présentation

Sending Email on MVS via SMTP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sending Email on MVS via SMTP -Or- You’ve Got Mail! (from the mainframe) -or- Sleepless in SMTP Jon Gibbens jon@provista.com

  2. A Familiar Phone Conversation? • “Hello, this is Jon..” • “Yes, this is Steve Bigwig here, did my extracts run last night??” • “Let me check. <click click> Yes, they are done..the job ran last night at 3am” • “Ok, and could you tell me how many records were on it?” • <click click> “ Yeah, 500.” • “Thanks” • Next week..same exact phone call!!!

  3. Introduction • Need to notify users when certain conditions have been met, such as... • Reports Printed/Ready • Files transferred • Jobs completed/failed • Provide some kind of automated reporting - ie..send data to someone on a regular basis

  4. How about using Email? • Email can help bridge the communication gap between you (the developer) and end users. • The rest of the world uses email to notify people about things, why not you and your MVS-based FOCUS programs?

  5. Presentation Agenda • How does it work? • Note Control File • Sample JCL (Inline & Procedure) • Sample FOCEXEC code • Sending a report via email • Advanced Usage (URL’s, HTML) • WWW resources • Q & A

  6. How does it work? • In a nutshell: • 1 - Dynamically create your NOTE CONTROL FILE or use one that you have already created. • 2 - NOTE CONTROL file contains the “secret handshake” as well as your note body text. • 3 - Send NOTE CONTROL file off to SMTP via IEBGENER. • SMTP allows for sending of email to any connected Intranet or Internet host.

  7. Note Control File - REQUIRED ELEMENTS(or....What’s the secret handshake?) 1. HELO HOST - HOST is name of the MVSHOST (defined in SYS1.PARMLIB(IEFSSNxx) 2. MAIL FROM:<email address> -sender of note 3. RCPT TO:<email address> - 1 line per email recipient (as many recipients as you want) 4. DATA - seperator between RCPT TO & SUBJECT 5. SUBJECT - subject line of note 6. Note Body

  8. Sample Note Control file HELO HOST MAIL FROM:<JON@PROVISTA.COM> RCPT TO:<JONATHAN.GIBBENS@SCHWAB.COM> DATA SUBJECT: TEST OF MAILING OUT THIS IS A TEST OF EMAIL :) JON GIBBENS • Note Control file generated with FOCUS/Dialogue Manager (using -WRITE statements)

  9. JCL section of a procedure //********************************************************************** //* PS020: EXECUTE IEBGENER PROGRAM TO SEND EMAIL NOTIFICATION VIA SMTP //********************************************************************** //PS020 EXEC PGM=IEBGENER //********************************************************************** //SYSIN DD DUMMY //SYSUT1 DD DSN=&WKPDS..NOTECNTL.TEST,DISP=SHR //SYSUT2 DD SYSOUT=(B,SMTP) //SYSOUT DD SYSOUT=X //SYSPRINT DD SYSOUT=X • IEBGENER - copies sequential dataset from any device to any device. • Input step in SYSUT1 - location of Note Control File • Output step in SYSUT2 - passes control to SMTP program

  10. JCL with note control file included inline //MA#JOGA1 JOB (TEST,MF#1),'JON MAIL TEST',CLASS=9,MSGCLASS=T, // NOTIFY=MF#JOG,USER=MF#JOG //IEBGENER EXEC PGM=IEBGENER //SYSIN DD DUMMY //SYSUT1 DD * HELO HOST MAIL FROM:<JON@PROVISTA.COM> RCPT TO:<JONATHAN.GIBBENS@SCHWAB.COM> DATA SUBJECT: TEST OF MAILING OUT THIS IS A TEST OF EMAIL :) JON GIBBENS /* //SYSUT2 DD SYSOUT=(B,SMTP) //SYSOUT DD SYSOUT=X //SYSPRINT DD SYSOUT=X

  11. Sample Note generated by JCL( as viewed in Exchange)

  12. Sample Scenario • Want to let Steve Bigwig know when his job ran, and how many records it pulled. • Sample Focexec to follow writes out the # system time & date, and the # of records in a flat file. Also creates our NOTE CONTROL FILE.

  13. FOCUS code to create NOTE Control File • Focexec is EMLSAMP1 • Includes a utility I use for creating most of my email related && variables • This code would go AFTER ‘data extract’ portion of the program. • Would be part of a JCL job/procedure

  14. EMLSAMP1 Focexec -* TABLE FILE <whatever> SUM CNT.ACCOUNTS BY CODE -* -*EMLSAMP1: JONATHAN GIBBENS -*FOCEXEC ABOVE DOES EXTRACT FOR STEVE BIGWIG -* END -* ===================================================== -* SET THE SYSTEM TIME VARIABLE -* ===================================================== -SET &STIME = ' '; -SET &STIME = HHMMSS(&STIME); -* -* ===================================================== -* SET UP 3 BODY LINES FOR EMAIL MESSAGE - -* DATE/TIME/RECORDS/LINES -* ===================================================== -SET &NEATDATE = EDIT(&YYMD,'9999/99/99'); -SET &BODY1 = ' YOUR EXTRACT RAN ON ' | &NEATDATE | ' AT ' | - &STIME; -SET &BODY2 = ' THE NUMBER OF LINES IN YOUR EXTRACT WAS ' | - &LINES; -SET &BODY3 = ' THE NUMBER OF RECORDS IN YOUR EXTRACT WAS '| &RECORDS; -* -* ===================================================== -* SET UP THE RECIPIENTS OF THE NOTE, AND THE SUBJECT -* ===================================================== -SET &RCPT1='JONATHAN.GIBBENS@SCHWAB.COM'; -SET &RCPT2='STEVEB@COMPANY.COM'; -SET &SUBJECT = 'FILE EXTRACTS FOR ' | &NEATDATE; -* -* -*********************************************************** -* NOTE CONTROL FILE UTILITY -* JON GIBBENS - PROVISTA SOFTWARE INTL. - JON@PROVISTA.COM -* -* SET UP && VARIABLES FOR CREATION OF NOTE CONTROL FILE -* NOTE: ALL OF THESE -SETS COULD BE INSIDE OF AN INCLUDE -* FILE FOR CONVENIENCE AND CODE PORTABILITY -** -** INPUTS: -** &RCPT1-5 = UP TO FIVE VALID EMAIL ADDRESSES -** &SUBJECT = THE SUBJECT OF THE NOTE -** -** OUTPUTS: ESSENTIAL VARIABLES FOR AN EMAIL MESSAGE -** -** &HELOLINE = 'HELO HOST' - FIRST LINE OF EMAIL MESSAGE -** WHERE HOST IS THE MAIL SUBSYSTEM -** &RCPTLNE1='RCPT TO:<RPCT1>' FIRST RECIPIENT -** &RCPTLNE2='RCPT TO:<RPCT2>' 2ND RECIPIENT -** &RCPTLNE3='RCPT TO:<RPCT3>' 3RD "" -** &RCPTLNE4='RCPT TO:<RPCT4>' 4TH "" -** &RCPTLNE5='RCPT TO:<RPCT5>' 5TH "" -** &SUBLINE = 'SUBJECT: &SUBJECT' -** &TOEND = '>' - THE END OF THE 'TO' LINE -** &DATALINE = 'DATA' - PUT AFTER 'TO' LINE(s) -** &SUBBEG = 'SUBJECT:' - BEGINNING OF SUBJECT LINE -** &SIGLINE1='THANKS! HAVE A NICE DAY!' -** &BLANKLINE = ' ' - SPACES/BLANKS -************************************************************** -**DEFAULT THE ESSENTIAL ELEMENTS-*************************************************************** -DEFAULTS &HELOLINE = 'HELO HOST' -DEFAULTS &TOBEG = 'RCPT TO:<' -DEFAULTS &TOEND = '>' -DEFAULTS &DATALINE = 'DATA' -DEFAULTS &SUBBEG = 'SUBJECT: ' -DEFAULTS &RCPT1=' ' -DEFAULTS &RCPT2=' ' -DEFAULTS &RCPT3=' ' -DEFAULTS &RCPT4=' ' -DEFAULTS &RCPT5=' ' -DEFAULTS &SUBJECT = ' ' -DEFAULTS &BLANKLINE = ' ' -RUN

  15. EMLSAMP1 Focexec -* -* ------------------------------------------------------------ -* SET UP THE RCPT TO: LINES - UP TO 5 PEOPLE CAN BE SENT THE EMAIL -* READ IN THE &RCPT1,&RCPT2,&RCPT3,&RCPT4,&RCPT5 VARIABLES -* OUTPUT IN THE FORMAT: RCPT TO:<EMAIL ADDRESS> -* ------------------------------------------------------------ -* -SET &RCPTLNE1 = &TOBEG || &RCPT1 || &TOEND; -SET &RCPTLNE2 = &TOBEG || &RCPT2 || &TOEND; -SET &RCPTLNE3 = &TOBEG || &RCPT3 || &TOEND; -SET &RCPTLNE4 = &TOBEG || &RCPT4 || &TOEND; -SET &RCPTLNE5 = &TOBEG || &RCPT5 || &TOEND; -* -* ------------------------------------------------------------ -* SET UP THE SUBJECT LINE - READ IN &SUBJECT; -* ------------------------------------------------------------ -* -SET &SUBLINE = 'SUBJECT: ' | &SUBJECT; -******************************************************************** -**INSTALLATION SPECIFIC VARIABLES -** &FROMLINE - EMAIL ADDRESS FOR THE SENDER (CAN BE ANY EMAIL -** ADDRESS) -** &SIGLINE1 - LINE TO END THE EMAIL ******************************************************************** -* -DEFAULTS &FROMLINE = 'MAIL FROM:<THEBIGMAINFRAME@COMPANY.COM>' -DEFAULTS &SIGLINE1 = 'THANKS! HAVE A NICE DAY!!' -DEFAULTS &SIGLINE2 = 'QUESTIONS/PROBLEMS? EMAIL TECHSUPPORT@COMPANY.COM' -*********************************************************************** -* -* --------------------------------------------------------------- -* WRITE OUT THE NOTE CONTROL FILE: NOTECNTL -* NOTE CONTROL FILE IS A FLAT FILE ALLOCATED AS MOD -* FOR SIMPLE NOTES, IT CAN BE FIXED FORMAT, 80 CHARACTERS, 27920 BLKS - -* --------------------------------------------------------------- -* ===================================================== -* WRITE OUT THE HELOLINE & THE FROM LINE -* ===================================================== -* -WRITE NOTECNTL &HELOLINE -WRITE NOTECNTL &FROMLINE -* -* ===================================================== -* WRITE OUT THE RECIPIENT(S) -* ===================================================== -* -WRITE NOTECNTL &RCPTLNE1 -WRITE NOTECNTL &RCPTLNE2 -* -* ===================================================== -* WRITE OUT THE DATA SEPERATOR & SUBJECT LINE -* ===================================================== -* -WRITE NOTECNTL &DATALINE -WRITE NOTECNTL &SUBLINE -* -* ===================================================== -* WRITE OUT THE BODY OF THE NOTE -* ===================================================== -* -WRITE NOTECNTL &BLANKLINE -WRITE NOTECNTL &BODY1 -WRITE NOTECNTL &BODY2 -WRITE NOTECNTL &BODY3 -WRITE NOTECNTL &BLANKLINE -WRITE NOTECNTL &SIGLINE1 -WRITE NOTECNTL &SIGLINE2 -* -* -* ========================================================= -* END OF JOB EMLSAMP1 -* =========================================================

  16. Resulting file from EMLSAMP HELO HOST MAIL FROM:<THEBIGMAINFRAME@COMPANY.COM> RCPT TO:<JONATHAN.GIBBENS@SCHWAB.COM> RCPT TO:<STEVEB@COMPANY.COM> DATA SUBJECT: FILE EXTRACTS FOR 1999/09/10 YOUR EXTRACT RAN ON 1999/09/10 AT 16.53.44 THE NUMBER OF LINES IN YOUR EXTRACT WAS 27 THE NUMBER OF RECORDS IN YOUR EXTRACT WAS 1000 THANKS! HAVE A NICE DAY!! QUESTIONS/PROBLEMS? EMAIL TECHSUPPORT@COMPANY.COM

  17. Sending a report via email • To send a small report (less than the maxiumum line length of your email client) 1. Turn off page-breaks (SET PAGE=NOPAGE ) 2. Put NOTE CONTROL FILE elements into your HEADER (ie..HELO,MAIL FROM,RCPT TO,DATA) 3. Save file in WP format and then send off to IEBGENER using JCL in examples.

  18. Advanced Usage • URLs - Exchange/Outlook or Netscape mail (other mail clients as well) will read any URL’s you include in your note and will activate them • So, if you are doing Intranet type reporting, you can point users to where the reports are. • Can do fancier HTML formatting if include MIME tags and HTML code (example to follow) • Only really works if email client fully supports HTML, or at least, supports the features that YOU need.

  19. Note Control File with a URLalong with resulting note. HELO HOST MAIL FROM:<JON@PROVISTA.COM> RCPT TO:<JONATHAN.GIBBENS@SCHWAB.COM> DATA SUBJECT: TEST OF USING URL IN NOTE A good site to visit for FUSE-related information is: http://www.csuhayward.edu/FOCUS/ncalfuse.htm

  20. Note Control File with HTMLalong with resulting note. HELO HOST MAIL FROM:<THEBIGMAINFRAME@SCHWAB.COM> RCPT TO:<JONATHAN.GIBBENS@SCHWAB.COM> DATA SUBJECT: A HTML TEST NOTE MIME-Version: 1.0 Content-type: text/html; charset=“us-ascii” <HTML> <BODY> <H1>Here’s the big header of the note</H1> <P> Hey, here’s an HTML note that will have you seeing <font face=“Arial” size=“+5” color=red>RED</font> </BODY> </HTML>

  21. WWW Resources • Dave’s MVS Mail Page - http://users.ticnet.com/davea/mvs/mvsmail • Decoding Internet Attachments - http://pages.prodigy.net/michael_santovec/decode.htm - To find out more about MIME tags, and different compatibility issues with different email clients

  22. Questions?

  23. Download this presentation Northern California FUSE Homepage: http://www.csuhayward.edu/FOCUS/mvsmail.ppt

More Related