Title: Sending Email on MVS via SMTP
1Sending Email on MVS via SMTP
- -Or-
- Youve Got Mail!
- (from the mainframe)
- -or-
- Sleepless in SMTP
- Jon Gibbens
- jon_at_provista.com
2A Familiar Phone Conversation?
- Hello, this is Jon..
- Yes, this is Steve Bigwig here, did my extracts
run last night?? - Let me check. ltclick clickgt Yes, they are
done..the job ran last night at 3am - Ok, and could you tell me how many records were
on it? - ltclick clickgt Yeah, 500.
- Thanks
- Next week..same exact phone call!!!
3Introduction
- 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
4How 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?
5Presentation Agenda
- How does it work?
- Note Control File
- Sample JCL (Inline Procedure)
- Sample FOCEXEC code
- Sending a report via email
- Advanced Usage (URLs, HTML)
- WWW resources
- Q A
6How 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.
7Note 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 FROMltemail addressgt -sender of note
- 3. RCPT TOltemail addressgt - 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
8Sample Note Control file
HELO HOST
MAIL FROMltJON_at_PROVISTA.COMgt
RCPT
TOltJONATHAN.GIBBENS_at_SCHWAB.COMgt
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)
9JCL section of a procedure
//
// PS020 EXECUTE
IEBGENER PROGRAM TO SEND EMAIL NOTIFICATION VIA
SMTP //
//PS020 EXEC
PGMIEBGENER
//
//SYSIN DD
DUMMY
//SYSUT1 DD DSNWKPDS..NOTECNTL.TEST,
DISPSHR //SYSUT2 DD
SYSOUT(B,SMTP)
//SYSOUT DD SYSOUTX
//SYSPRINT DD
SYSOUTX
- 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
10JCL with note control file included inline
//MAJOGA1 JOB (TEST,MF1),'JON MAIL
TEST',CLASS9,MSGCLASST, // NOTIFYMFJOG,USERM
FJOG
//IEBGENER EXEC PGMIEBGENER
//SYSIN DD DUMMY
//SYSUT1 DD
HELO
HOST
MAIL FROMltJON_at_PROVISTA.COMgt
RCPT TOltJONATHAN.GIBBENS_at_SCH
WAB.COMgt DATA
SUBJECT TEST OF MAILING OUT THIS IS A TEST
OF EMAIL ) JON GIBBENS
/
//SYSUT2 DD SYSOUT(B,SMTP) //SYSOUT DD
SYSOUTX //SYSPRINT DD SYSOUTX
11Sample Note generated by JCL( as viewed in
Exchange)
12Sample 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.
13FOCUS 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
14EMLSAMP1 Focexec
- TABLE FILE ltwhatevergt 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') -SE
T 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_at_SCHWAB.COM' -SET
RCPT2'STEVEB_at_COMPANY.COM' -SET SUBJECT
'FILE EXTRACTS FOR ' NEATDATE - -
-
- NOTE CONTROL FILE UTILITY - JON
GIBBENS - PROVISTA SOFTWARE INTL. -
JON_at_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
TOltRPCT1gt' FIRST RECIPIENT -
RCPTLNE2'RCPT TOltRPCT2gt' 2ND RECIPIENT -
RCPTLNE3'RCPT TOltRPCT3gt' 3RD "" -
RCPTLNE4'RCPT TOltRPCT4gt' 4TH "" -
RCPTLNE5'RCPT TOltRPCT5gt' 5TH "" -
SUBLINE 'SUBJECT SUBJECT' - TOEND
'gt' - 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 TOlt' -DEFAULTS TOEND 'gt' -DEFAULTS
DATALINE 'DATA' -DEFAULTS SUBBEG
'SUBJECT ' -DEFAULTS RCPT1' ' -DEFAULTS
RCPT2' ' -DEFAULTS RCPT3' ' -DEFAULTS
RCPT4' ' -DEFAULTS RCPT5' ' -DEFAULTS
SUBJECT ' ' -DEFAULTS BLANKLINE ' ' -RUN
15EMLSAMP1 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
TOltEMAIL ADDRESSgt - ----------------------------
-------------------------------- - -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 -
-INS
TALLATION SPECIFIC VARIABLES - FROMLINE -
EMAIL ADDRESS FOR THE SENDER (CAN BE ANY
EMAIL - ADDRESS) - SIGLINE1 -
LINE TO END THE EMAIL
- -DEFAU
LTS FROMLINE 'MAIL FROMltTHEBIGMAINFRAME_at_COMPAN
Y.COMgt' -DEFAULTS SIGLINE1 'THANKS! HAVE A
NICE DAY!!' -DEFAULTS SIGLINE2
'QUESTIONS/PROBLEMS? EMAIL TECHSUPPORT_at_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 -
16Resulting file from EMLSAMP
- HELO HOST
- MAIL FROMltTHEBIGMAINFRAME_at_COMPANY.COMgt
- RCPT TOltJONATHAN.GIBBENS_at_SCHWAB.COMgt
- RCPT TOltSTEVEB_at_COMPANY.COMgt
- 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_at_COMPANY.COM
17Sending 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 PAGENOPAGE )
- 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.
18Advanced Usage
- URLs - Exchange/Outlook or Netscape mail (other
mail clients as well) will read any URLs 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.
19Note Control File with a URLalong with resulting
note.
- HELO HOST
- MAIL FROMltJON_at_PROVISTA.COMgt
- RCPT TOltJONATHAN.GIBBENS_at_SCHWAB.COMgt
- 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
-
-
20Note Control File with HTMLalong with resulting
note.
- HELO HOST
- MAIL FROMltTHEBIGMAINFRAME_at_SCHWAB.COMgt
- RCPT TOltJONATHAN.GIBBENS_at_SCHWAB.COMgt
- DATA
- SUBJECT A HTML TEST NOTE
- MIME-Version 1.0
- Content-type text/html charsetus-ascii
- ltHTMLgt
- ltBODYgt
- ltH1gtHeres the big header of the notelt/H1gt
- ltPgt
- Hey, heres an HTML note that will have you
seeing ltfont faceArial size5
colorredgtREDlt/fontgt - lt/BODYgt
- lt/HTMLgt
-
21WWW Resources
- Daves MVS Mail Page - http//users.ticnet.com/da
vea/mvs/mvsmail
- Decoding Internet Attachments -
http//pages.prodigy.net/michael_santovec/decode.h
tm - To find out more about MIME tags, and
different compatibility issues with different
email clients
22Questions?
23Download this presentation
- Northern California FUSE Homepage
- http//www.csuhayward.edu/FOCUS/mvsmail.ppt