This sends a PF as a CSV with headings
CLP:
PGM PARM(&DATAPARM &EML &SUBJECT &BODY)
DCL VAR(&DATAPARM) TYPE(*CHAR) LEN(20)
DCL VAR(&DATAFILE) TYPE(*CHAR) LEN(10)
DCL VAR(&DATALIB) TYPE(*CHAR) LEN(10)
DCL VAR(&EML) TYPE(*CHAR) LEN(255)
DCL VAR(&SUBJECT) TYPE(*CHAR) LEN(100)
DCL VAR(&BODY) TYPE(*CHAR) LEN(400)
DCL VAR(&USER) TYPE(*CHAR) LEN(10)
DCL VAR(&IFS) TYPE(*CHAR) LEN(255)
DCL VAR(&STMF) TYPE(*CHAR) LEN(255)
/* Who? */
RTVJOBA USER(&USER)
/* break file and lib out of the incoming parm */
CHGVAR VAR(&DATAFILE) VALUE(&DATAPARM)
CHGVAR VAR(&DATALIB) VALUE(%SUBSTRING(&DATAPARM 11 10))
/* construct the working IFS folder name for this user */
CHGVAR VAR(&IFS) VALUE('/home/' *CAT %TRIM(&USER) *CAT +
'/')
/* create the folder if needed /
CRTDIR DIR(&IFS)
MONMSG MSGID(CPFA0A0) / already exists */
CHGVAR VAR(&STMF) VALUE(%TRIM(&IFS) *CAT %TRIM(&DATAFILE) +
*CAT '.csv')
CPYTOIMPF FROMFILE(&DATALIB/&DATAFILE) TOSTMF(&STMF) +
MBROPT(*REPLACE) FROMCCSID(*FILE) +
STMFCCSID(*PCASCII) RCDDLM(*CRLF) DTAFMT(*DLM) +
STRDLM(*DBLQUOTE) ADDCOLNAM(*SYS)
SNDSMTPEMM RCP((&EML)) SUBJECT(&SUBJECT) NOTE(&BODY) +
ATTACH((&STMF))
/* clean up sale aisle 46 */
RMVLNK OBJLNK(&STMF)
RETURN
ENDPGM:
ENDPGM
CMD:
CMD PROMPT('Email PF as CSV')
PARM KWD(FILE) TYPE(PF_FILE) MIN(1) PROMPT('File Name')
PF_FILE: QUAL TYPE(*NAME) LEN(10) MIN(1) EXPR(*YES)
QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) SPCVAL((*LIBL +
*LIBL) (*CURLIB *CURLIB)) PROMPT('Library')
PARM KWD(EML) TYPE(*CHAR) LEN(255) MIN(1) PROMPT('Email +
Address')
PARM KWD(SUBJECT) TYPE(*CHAR) LEN(100) MIN(1) +
PROMPT('Email Subject')
PARM KWD(BODY) TYPE(*CHAR) LEN(400) MIN(1) +
PROMPT('Email Body')
Instuctions
Create SNDCSVEML Source members in your CLP and CMD source files;
Copy and Paste code above to appropriate member
Compile
Enjoy