Using mail on MVS via SMTPNOTE

Download Report

Transcript Using mail on MVS via SMTPNOTE

Sending Email on MVS via SMTP
-OrYou’ve Got Mail!
(from the mainframe)
-orSleepless in SMTP
Jon Gibbens
[email protected]
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!!!
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
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?
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
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.
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
Sample Note Control file
HELO HOST
MAIL FROM:<[email protected]>
RCPT TO:<[email protected]>
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)
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
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:<[email protected]>
RCPT TO:<[email protected]>
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
Sample Note generated by JCL
( as viewed in Exchange)
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.
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
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='[email protected]';
-SET &RCPT2='[email protected]';
-SET &SUBJECT = 'FILE EXTRACTS FOR ' | &NEATDATE;
-*
-*
-***********************************************************
-* NOTE CONTROL FILE UTILITY
-* JON GIBBENS - PROVISTA SOFTWARE INTL. - [email protected]
-*
-* 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
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:<[email protected]>'
-DEFAULTS &SIGLINE1 = 'THANKS! HAVE A NICE DAY!!'
-DEFAULTS &SIGLINE2 = 'QUESTIONS/PROBLEMS? EMAIL
[email protected]'
********************************************************************
***
-*
-* ---------------------------------------------------------------* 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
-* =========================================================
Resulting file from EMLSAMP
HELO HOST
MAIL FROM:<[email protected]>
RCPT TO:<[email protected]>
RCPT TO:<[email protected]>
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
THE NUMBER OF RECORDS IN YOUR EXTRACT WAS
27
1000
THANKS! HAVE A NICE DAY!!
QUESTIONS/PROBLEMS? EMAIL [email protected]
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.
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.
Note Control File with a URL
along with resulting note.
HELO HOST
MAIL FROM:<[email protected]>
RCPT TO:<[email protected]>
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
Note Control File with HTML
along with resulting note.
HELO HOST
MAIL FROM:<[email protected]>
RCPT TO:<[email protected]>
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>
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
Questions?
Download this presentation
Northern California FUSE Homepage:
http://www.csuhayward.edu/FOCUS/mvsmail.ppt