Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

YMLSML - Send e-mail

&pagelevel(5)&pagelevel

You can use this macro to send e-mails.

Entry names or SVC number(s)

SVC 20 (decimal)

UNIT=940, FUNCTION=20, VERSION=1 | 2 | 3

Macro call format and operand description

YMLSML

FL= *TU / *TPR

,VERSION= 1 / 2 / 3

,XPAND= PARAM / GENERAL / ADD_HEADER / DATA_SPEC / CHARSET / ENCODING /

 CONT_DISP / MSG_ATT

,MAILP= <var: pointer>

,MAILPL= <integer: 1..32767> / <var: int:4>

,OPTFILE= *NONE / <var: char:54>

,ENCRYPT= *NO / *YES / *OPTFILE

,SIGN= *NO / *YES / *OPTFILE

,SECPROT= *SMIME

,CIPHER= *3DES / *AES-128 / *AES-192 / *AES-256 / *OPTFILE

,WAIT= *NO-DISCARD / *NO / *YES

,WAITTIM= *UNLIM / <integer: 1..65535> / <var: int:4>

FL=
Function area

*TU
An SVC interface is generated.

*TPR
A CALL interface is generated.

VERSION=
Selects the interface version.

1
Selects the original interface version.
This is the default.

2
Selects the new interface version, which offers the operand WAITTIM and additional return codes.

3
Selects the newest interface version, which allows in the DATA_SPEC data structure the specification of options for locking and deleting a file. With this comes an additional return code.

XPAND=
These parameters control the expansion of the data structures that describe the parameter list of the macro and the layout of the mail parameters. These data structures are referenced by the mail parameter MAILP. You will find a description of the data structures starting on "YMLSML - Send mail".

PARAM
A macro parameter list is generated.

GENERAL
A data layout is generated for the general mail parameters.

ADD_HEADER
A data layout is generated for the additional header lines.

DATA_SPEC
A data layout is generated for the specification of the mail data.

CHARSET
A data layout is generated for the specification of the character set.

ENCODING
A data layout is generated for the specification of the encoding.

CONT_DISP
A data layout is generated for the specification of the internal structure of the content.

MSG_ATT
A data layout is generated for the nesting of messages/attachments.

MAILP=
Parameter section for describing the e-mail. This parameter is mandatory.

<IDENTIFIER>
Variable in which the address of the parameter section is stored or register containing the address of the parameter section.

MAILPL=
Length of the parameter section for describing the e-mail. This parameter is mandatory.

<INTEGER 1..32767>
Length of the parameter section.

<IDENTIFIER>
Variable in which the length of the parameter section is stored or register containing the length of the parameter section.

OPTFILE=
Name of the user option file (see "Configuration file for the mail sender frontend (user option file)"). The options in this file can be overwritten or options can be added by using macro parameters.

*NONE
No file defined.

<IDENTIFIER>
Variable in which the name of the option file is stored or register containing the address of the name of the option file.

ENCRYPT=
Specifies whether the user wants to encrypt the message to be sent.

*NO
The e-mail is not encrypted.

*YES
The e-mail is encrypted.

*OPTFILE
The specification is taken from the user option file (see "Configuration file for the mail sender frontend (user option file)").

SIGN=
This parameter specifies whether the caller wants to sign the message to be sent.

*NO
The e-mail is not signed.

*YES
The e-mail is signed.

*OPTFILE
The specification is taken from the user option file (see "Configuration file for the mail sender frontend (user option file)").

SECPORT=
This parameter specifies the encryption/signing method.
Currently, S/MIME is the only method supported.

*SMIME
S/MIME is used.

CIPHER=
Symmetrical encryption code.

*3DES
Triple DES

*AES-128
AES with 128-bit key length.

*AES-192
AES with 192-bit key length.

*AES-256
AES with 256-bit key length.

*OPTFILE
The specification in the user option file (see "Configuration file for the mail sender frontend (user option file)") is taken.

WAIT=
Specifies whether the caller wants to wait for the mail send order to be completed by the mail sender backend.

*NO-DISCARD
Do not wait or instruct ASTI to reject the result status of the mail sender backend.

*NO
Do not wait, but instruct ASTI to save the result status of the mail sender backend.

*YES
Wait until the mail sender backend has completed the send order or reports an error sending the e-mail.

WAITTIME=
With this operand the wait time can be limited in the case of WAIT=*YES. The operand is only available with VERSION=2. When the maximal wait time is reached, the call is terminated with an appropriate return code.

*UNLIM
Unlimited wait time. With this operand value the behaviour is as hitherto.

<INTEGER 1..65535>
Maximal wait time in seconds.

<IDENTIFIER>
Variable or register containing the wait time (in seconds).

Return codes

SRC2

SRC1

MRC

MRC name

Meaning

00

00

0000

YMLSSUCC

No error found.

00

01

0001

YMLSPARE

Parameter error.

00

20

0002

YMLSINTE

Internal error.

00

40

0003

YMLSMSYN

Syntax error in the mail parameter.

00

40

0004

YMLSOFNA

Option file not available.

00

40

0005

YMLSMFNA

Message or attachment not available.

00

40

0006

YMLSSFNA

File for SMIME not available.

00

40

0007

YMLSPTBG

Mail parameter too large.

00

40

0008

YMLSBACK

Backend error.

00

80

0009

YMLSMORD

Maximum number of orders exceeded.

00

80

000A

YMLSSNAV

Mail client service not available.

00

40

000B

YMLSAINV

Mail parameter address invalid.

00

40

000C

YMLSRSRC

Resources exhausted.

00

40

000D

YMLSANAV

ASTI subsystem not available.

00

40

000E

YMLSNFRA

No FROM address specified.

00

20

000F

YMLSASTI

Unexpected ASTI error.

00

80

0010

YMLSTIME

Maximal wait time reached.

00 40 0011 YMLSFLME Unexpected file lock manager error

SRC1/2 = sub-return code 1/2 in hexadecimal notation
MRC = main return code in hexadecimal notation


Macro call parameters

The data structure of the macro call parameters of YMLSML is composed as follows:

VERSION=1:

Distance

Identifier

Value

Meaning


YMLSPARL


Parameter section

000

YMLSHDR


Function header

008

YMLSIND


Input parameter

008

YMLSMPAR


Address of the mail parameter area

00C

YMLSMPRL


Length of the mail parameter area

010

YMLSWAIT


Wait for the end of the mail send order?


YMLSWYES

1

Yes


YMLSWNO

2

No; ASTI discards order execution status.


YMLSWRES

3

No; ASTI does not discard order execution status.

011

YMLSSPRO


Protocol for encryption and signing


YMLSSMIM

1

S/MIME

012

YMLSENC


Encryption?


YMLSGYES

1

Yes


YMLSGNO

2

No


YMLSGOPT

3

Value from user option file

013

YMLSSIGN


Signing?


YMLSGYES

1

Yes


YMLSGNO

2

No


YMLSGOPT

3

Value from user option file

014

YMLSCPHR


Encryption algorithm:


YMLS3DES

5

3DES


YMLSAES8

6

AES-128


YMLSAES2

7

AES-192


YMLSAES6

8

AES-256


YMLSFOPT

127

Value from user option file

015

YMLSOPTF


Name of user option file

04B

YMLSRSV1


Reserved area

04C

YMLSOUTD


Output parameter

04C

YMLSOID


Order ID for referencing the mail send order if the caller does not wait for the transfer to be completed.

05C

YMLSRETC


Return code from backend


YMLSBOK

00

Ok


YMLSBPER

01

Parameter error


YMLSBRSC

02

Resource saturation


YMLSBSMT

03

SMTP error


YMLSBSMI

04

S/MIME error


YMLSBINT

0A

Internal error

060

YMLSRETM


May contain error messages in text format (e.g. SMTP error messages of the SMTP server).

100

YMLSARET


If the YMLSML call returns the return code YMLSASTI, this field contains the ASTI return code.

VERSION>=2:

Distance

Identifier

Value

Meaning


YMLSPARL


Parameter area

000

YMLSHDR


Function header

008

YMLSIND


Input parameters

008

YMLSMPAR


Adress of mail parameter area

00C

YMLSMPRL


Length of mail parameter area

010

YMLSWTTM


Maximal wait time

014

YMLSWAIT


Wait for completion of mail send order?


YMLSWYES

1

Yes


YMLSWNO

2

No; ASTI discards order execution status.


YMLSWRES

3

No; ASTI does not discard order execution status.

015

YMLSSPRO


Protocol for encryption and signing


YMLSSMIM

1

S/MIME

016

YMLSENC


Encryption?


YMLSGYES

1

Yes


YMLSGNO

2

No


YMLSGOPT

3

Value from user option file

017

YMLSSIGN


Signing?


YMLSGYES

1

Yes


YMLSGNO

2

No


YMLSGOPT

3

Value from user option file

018

YMLSCPHR


Encryption algorithm:


YMLS3DES

5

3DES


YMLSAES8

6

AES-128


YMLSAES2

7

AES-192


YMLSAES6

8

AES-256


YMLSFOPT

127

Value from user option file

019

YMLSOPTF


Name of user option file

04F

YMLSRSV1


Reserved area

050

YMLSOUTD


Output parameters

050

YMLSOID


Order ID for referencing the mail send order if the caller does not wait for the transfer to be completed.

060

YMLSRETC


Returncode from backend


YMLSBOK

00

Ok


YMLSBPER

01

Parameter error


YMLSBRSC

02

Resource saturation


YMLSBSMT

03

General SMTP error


YMLSBSMI

04

S/MIME error


YMLSBSMM

05

Error with SMTP MAIL command


YMLSBSMR

06

Error with SMTP RCPT command


YMLSBSMD

07

Error with SMTP DATA command


YMLSBFAC

08

Error at access to user option file


YMLSBMTL

09

Mail too large


YMLSBINT

0A

Internal error

064

YMLSRETM


May contain error messages in text format (e.g. SMTP error
messages of the SMTP server).

104

YMLSARET


This field contains the ASTI return code in case the YMLSSML
call is rejcected with the YMLSASTI return code.

108

YMLSMID


Message ID

10F

YMLSRSV2


Reserved area

Supplementary notes to the output parameters:

YMLSRETC

Some failure situations, where with VERSION=1 only a collective return code is delivered, are covered with VERSION>=2 by specific return codes for finding out the real error reason more quickly.

For instance the return code YMLSBMM is a strong hint that there is an error in the sender address. Accordingly the return code YMLSBMR indicates an error in at least one of the recipient addresses. A YMLSBMD can e.g. occur when the SMTP server checks the violation of certain rules only after the DATA command, the reason for the rule violation can be related to the specified addresses. In any case the field YMLSRETM should give further (text) information related to the error cause.

YMLSRETM

If the SMTP server used supports RFC 2034, then this field contains a machine interpretable error indicator, which in general is more specific than the SMTP related return codes in the YMLSRETC field.

YMLSMID

This field contains a YML message key for a message describing the occured error. This is normally the same message as a corresponding SEND-MAIL command call would deliver.


Listing of the expansion of the data structure for the macro call parameters

Expansion:

XPAND=      PARAM

                              YMLSML MF=D,XPAND=PARAM
                   1          MFTST MF=D,PREFIX=Y,MACID=MLS,ALIGN=F,
                   1                DMACID=MLS,SUPPORT=(E,D,C,M,L),DNAME=MLSPARL
000000             2 YMLSPARL DSECT ,
                   1 *   Parameter area
                   1 YMLSHDR  FHDR  MF=(C,YMLS),EQUATES=NO                         FHDR
                   1 *   main return codes
        00000000   1 YMLSSUCC EQU   0                         No error detected
        00000001   1 YMLSPARE EQU   1                         Parameter error
        00000002   1 YMLSINTE EQU   2                         Internal error
        00000003   1 YMLSMSYN EQU   3                         Syntax error
        00000004   1 YMLSOFNA EQU   4                         Option file not
                                                               accessible
        00000005   1 YMLSMFNA EQU   5                         Message or attachment
                                                               file
                   1 *                                        not accessible
        00000006   1 YMLSSFNA EQU   6                         SMIME related file not
                   1 *                                        accessible
        00000007   1 YMLSPTBG EQU   7                         Mail parameter too big
        00000008   1 YMLSBACK EQU   8                         Back-end error
        00000009   1 YMLSMORD EQU   9                         Max number of orders
                                                               exceeded 
        0000000A   1 YMLSSNAV EQU   10                        Mailclient Service not
                   1 *                                        available
        0000000B   1 YMLSAINV EQU   11                        Mailpar address invalid
        0000000C   1 YMLSRSRC EQU   12                        Resource saturation
        0000000D   1 YMLSANAV EQU   13                        Subsystem ASTI not
                                                               available
        0000000E   1 YMLSNFRA EQU   14                        No FROM address specified
        0000000F   1 YMLSASTI EQU   15                        Unexpected ASTI error
                   1 *
                   1 *
000008             1 YMLSIND  DS    0XL68                     Input parameters
000008             1 YMLSMPAR DS    A                         Mail parameter area
00000C             1 YMLSMPRL DS    F                         Mail parameter area
                                                               length
000010             1 YMLSWAIT DS    FL1                       wait
                   1 *   Wait operand values
        00000001   1 YMLSWYES EQU   1                         YES
        00000002   1 YMLSWNO  EQU   2                         NO-DISCARD
        00000003   1 YMLSWRES EQU   3                         NO
                   1 *
000011             1 YMLSSPRO DS    FL1                       Protocol for encryption
                                                               and
                   1 *                                        signing
                   1 *   Mail encryption/signing protocol
        00000001   1 YMLSSMIM EQU   1                         SMIME
                   1 *
000012             1 YMLSENC  DS    FL1                       Encryption
                   1 *   General yes or no selection
        00000001   1 YMLSGYES EQU   1                         YES
        00000002   1 YMLSGNO  EQU   2                         NO
        00000003   1 YMLSGOPT EQU   3                         OPTFILE
                   1 *
000013             1 YMLSSIGN DS    FL1                       Signing
000014             1 YMLSCPHR DS    FL1                       Cipher
                   1 *   Cipher operand values
        00000005   1 YMLS3DES EQU   5                         3DES
        00000006   1 YMLSAES8 EQU   6                         AES-128
        00000007   1 YMLSAES2 EQU   7                         AES-192
        00000008   1 YMLSAES6 EQU   8                         AES-256
        0000007F   1 YMLSFOPT EQU   127                       OPTFILE
                   1 *
000015             1 YMLSOPTF DS    CL54                      Option file
00004B             1 YMLSRSV1 DS    CL1                       Reserved
                   1 *
                   1 *
00004C             1 YMLSOUTD DS    0XL184                    Output parameters
00004C             1 YMLSOID  DS    CL16                      Order Id
00005C             1 YMLSRETC DS    F                         Return code
                   1 *   rc
        00000000   1 YMLSBOK  EQU   0                         OK
        00000001   1 YMLSBPER EQU   1                         Parameter error
        00000002   1 YMLSBRSC EQU   2                         Resource saturation
        00000003   1 YMLSBSMT EQU   3                         SMTP error
        00000004   1 YMLSBSMI EQU   4                         SMIME error
        0000000A   1 YMLSBINT EQU   10                        Internal error
                   1 *
000060             1 YMLSRETM DS    CL160                     Return message
000100             1 YMLSARET DS    F                         Return code from ASTI
                   1 *
        00000104   1 YMLS#    EQU   *-YMLSHDR

Mail parameters

An e-mail consists of many constituent parts, some of which are optional, whose length is generally variable. Data structures based on tuples of a certain format (type, length, value) are therefore used to specify the mail parameters.

Each parameter is a 2-byte integer field. The field contains one of the values listed in the table below.

Value name

Tag #

Meaning

YMLSFROM

1

Envelope sender address (is also placed in the FROM header line if YMLSFFRM is not specified).

YMLSFFRM

2

Sender address in the FROM header line.

YMLSTO

3

List of envelope recipient addresses separated by commas (is also placed in the TO header line if YMLSFTO is not specified).

YMLSFTO

4

List of recipient addresses separated by commas. Is placed in the To header line.

YMLSCC

5

List of envelope recipient addresses separated by commas (is also placed in the CC header line if YMLSFCC is not specified).

YMLSFCC

6

List of recipient addresses separated by commas. Is placed in the CC header line.

YMLSBCC

7

List of envelope recipient addresses separated by commas.

YMLSRPLT

8

Address in the REPLY-TO header line.

YMLSSBJT

9

Text for the SUBJECT header line.

YMLSAHDR

10

Additional header lines in which the caller can define the field names.

YMLSMBEG

11

Beginning of the definition of the message text.

YMLSMEND

12

End of the definition of the message text.

YMLSABEG

13

Beginning of the definition of the attachment.

YMLSAEND

14

End of the definition of the attachment.

YMLSDSPC

15

Data definition for message/attachment.

YMLSCHST

16

Character set definition for header/message/attachment.

YMLSTRCD

17

Transfer encoding of message/attachment.

YMLSCTTT

18

Content type of message/attachment.

YMLSTCTD

19

Presentation note for message/attachment.

YMLSKEYF

21

Key file (see the user option file “privateKeyFile”).

YMLSSGNF

22

File containing an X.509 certificate for signing e-mails with S/MIME (see the user option “signerCertificateFile”).

YMLSASCF

23

File containing additional X.509 certificates for signing e-mails with S/MIME (see the user option “addSignerCertificatesFile”).

YMLSRCTF

24

File containing X.509 certificates for encrypting e-mails with S/MIME (see the user option “recipientCertificatesFile”).

YMLSCRLF

25

File containing certificate revocation lists (CRLs) for X.509 certificates (see the user option “certificateRevocationListFile”).

Notes on defining the input section for the mail parameters

  • If one of the parameters YMLSKEYF, YMLSSGNF, YMLSASCF or YMLSCRLF is specified, the corresponding option in the user option file is ignored. This option is deactivated by specifying the value *NONE. This is the case, for example, if an X.509 certificate other than the one specified in the option file is used to sign
    e-mails with S/MIME (YMLSSGNF), and for which, in contrast to the X.509 certificate in the option file, no additional X.509 certificates are required (YMLSASCF:*NONE).

  • If the YMLSRCTF parameter is specified, the file specified there is placed above the files specified in recipientCertificatesFile options in the search sequence.

  • The current implementation limits the size of the mail parameters to 63 kB. This limit is only likely to be reached if the text of the e-mail or data in the attachments is inserted directly in the e-mail’s parameter section. If this error occurs, write the e-mail text in a (temporary) file, and specify only the file name in the parameter section.

  • The reserved header fields must be initialized with binary zeroes.
  • The data of a variable length begins immediately after the associated header. The headers must be designed for full word length. You therefore have to insert filler bytes when the variable part contains a number of bytes that is not a multiple of 4.

  • The field name of the mail header must be entered in the data structure for additional headers without the subsequent colon.

  • Unless otherwise indicated, the order in which the data structures occur is of no significance.

  • The definition of the mail text or an attachment must be bracketed with two YMLSATT data structures in which YMLSMBEG/YMLSMEND (e-mail) or YMLSABEG/YMLSAEND is assigned to the tag field.

    The definition of the e-mail text or an attachment can contain data structures with the following tags:

    YMLSDSPC, YMLSCHST, YMLSTRCD, YMLSTCTD

    If a YMLSCSET data structure (with a YMLSCHST tag) is outside a YMLSATT data structure, it is applied to the following header lines (see RFC 2047) until the occurrence of a further YMLSCSET data structure.

  • All the specified files must remain unchanged until the e-mail is sent.


Listing of the expansion of the data structures for the mail parameters

Expansion:

XPAND=

GENERAL, ADD_HEADER, DATA_SPEC, CHARSET, ENCODING,
CONT_DISP, MSG_ATT

                              YMLSML MF=D,XPAND=GENERAL
                   1          MFTST MF=D,PREFIX=Y,MACID=MLS,ALIGN=F,
                   1                DMACID=MLS,SUPPORT=(E,D,C,M,L),DNAME=MLSGNRL
000000             2 YMLSGNRL DSECT ,
                   1 *   Input parameters
000000             1 YMLSGTAG DS    H                         tag of general parameter
                   1 *   Tag value(s) for struct _general
        00000001   1 YMLSFROM EQU   1                         from
        00000002   1 YMLSFFRM EQU   2                         fake_from
        00000003   1 YMLSTO   EQU   3                         to
        00000004   1 YMLSFTO  EQU   4                         fake_to
        00000005   1 YMLSCC   EQU   5                         cc
        00000006   1 YMLSFCC  EQU   6                         fake_cc
        00000007   1 YMLSBCC  EQU   7                         envelope recipient mail
                   1 *                                        addresses
        00000008   1 YMLSRPLT EQU   8                         reply_to
        00000009   1 YMLSSBJT EQU   9                         subject
        00000012   1 YMLSCTTT EQU   18                        content_type
        00000014   1 YMLSOPFI EQU   20                        option file
        00000015   1 YMLSKEYF EQU   21                        key file
        00000016   1 YMLSSGNF EQU   22                        signer certificate file
        00000017   1 YMLSASCF EQU   23                        additional signer
                   1 *                                        certificates file
        00000018   1 YMLSRCTF EQU   24                        recipient certificate
                                                               file
        00000019   1 YMLSCRLF EQU   25                        CRL file
                   1 *
000002             1 YMLSGRS1 DS    XL2                       reserved
000004             1 YMLSGLEN DS    F                         general parameter length
        00000008   1 YMLSGNRL# EQU   *-YMLSGTAG
                              YMLSML MF=D,XPAND=ADD_HEADER
                   1          MFTST MF=D,PREFIX=Y,MACID=MLS,ALIGN=F,
                   1                DMACID=MLS,SUPPORT=(E,D,C,M,L),DNAME=MLSHEAD
000000             2 YMLSHEAD DSECT ,
                   1 *   Input parameters
000000             1 YMLSHTAG DS    H                         tag of add. header
                   1 *   Tag value(s) for struct _add_header
        0000000A   1 YMLSAHDR EQU   10                        add. header
                   1 *
000002             1 YMLSHRS1 DS    XL2                       reserved
000004             1 YMLSHLNN DS    F                         add. header name length
000008             1 YMLSHLNB DS    F                         add. header body length
        0000000C   1 YMLSHEAD# EQU   *-YMLSHTAG
                              YMLSML MF=D,XPAND=DATA_SPEC
                   1          MFTST MF=D,PREFIX=Y,MACID=MLS,ALIGN=F,
                   1                DMACID=MLS,SUPPORT=(E,D,C,M,L),DNAME=MLSDTSP
000000             2 YMLSDTSP DSECT ,
                   1 *   Data specification
000000             1 YMLSDTAG DS    H                         tag of add. header
                   1 *   Tag value(s) for struct _data_spec
        0000000F   1 YMLSDSPC EQU   15                        dataspec
                   1 *
000002             1 YMLSDTYP DS    FL1                       reserved
                   1 *   Type of data specification
        00000001   1 YMLSFILE EQU   1                         file
        00000002   1 YMLSDATA EQU   2                         data
                   1 *
000003             1 YMLSDRS1 DS    XL1                       reserved
000004             1 YMLSDLEN DS    F                         length of data. spec.
        00000008   1 YMLSDTSP# EQU   *-YMLSDTAG
                              YMLSML MF=D,XPAND=DATA_SPEC,VERSION=3
                   1          MFTST MF=D,PREFIX=Y,MACID=MLS,ALIGN=F,
                   1                DMACID=MLS,SUPPORT=(E,D,C,M,L),DNAME=MLSDTSP
000000             2 YMLSDTSP DSECT ,
                   1 *   Data specification
000000             1 YMLSDTAG DS    H                         tag of add. header
                   1 *   Tag value(s) for struct _data_spec
        0000000F   1 YMLSDSPC EQU   15                        dataspec
                   1 *
000002             1 YMLSDTYP DS    FL1                       reserved
                   1 *   Type of data specification
        00000001   1 YMLSFILE EQU   1                         file
        00000002   1 YMLSDATA EQU   2                         data
                   1 *
000003             1 YMLSDOPT DS    AL1                       options
        00000080   1 YMLSDDEL EQU   X'80'                     delete file
        00000040   1 YMLSDDES EQU   X'40'                     destroy when deleting
        00000020   1 YMLSDLCK EQU   X'20'                     lock file
        0000001F   1 YMLSDUNU EQU   X'1F'                     unused
000004             1 YMLSDLEN DS    F                         length of data. spec.
        00000008   1 YMLSDTSP# EQU   *-YMLSDTAG
                              YMLSML MF=D,XPAND=CHARSET
                   1          MFTST MF=D,PREFIX=Y,MACID=MLS,ALIGN=F,
                   1                DMACID=MLS,SUPPORT=(E,D,C,M,L),DNAME=MLSCSET
000000             2 YMLSCSET DSECT ,
                   1 *   Data specification
000000             1 YMLSCTAG DS    H                         tag of add. header
                   1 *   Tag value(s) for struct _charset
        00000010   1 YMLSCHST EQU   16                        character set
                   1 *
000002             1 YMLSCBNR DS    FL1                       binary data
                   1 *   Binary data selection
        00000001   1 YMLSBYES EQU   1                         YES
        00000002   1 YMLSBNO  EQU   2                         NO
                   1 *
000003             1 YMLSCRS1 DS    XL1                       reserved
000004             1 YMLSCLEN DS    F                         length
000008             1 YMLSCSCX DS    CL8                       src_charset_XHCS
000010             1 YMLSCDCX DS    CL8                       dest_charset_XHCS
        00000018   1 YMLSCSET# EQU   *-YMLSCTAG
                              YMLSML MF=D,XPAND=ENCODING
                   1          MFTST MF=D,PREFIX=Y,MACID=MLS,ALIGN=F,
                   1                DMACID=MLS,SUPPORT=(E,D,C,M,L),DNAME=MLSENCD
000000             2 YMLSENCD DSECT ,
                   1 *   Encoding
000000             1 YMLSETAG DS    H                         tag of encoding
                   1 *   Tag value(s) for struct _encoding
        00000011   1 YMLSTRCD EQU   17                        transfer encoding
                   1 *
000002             1 YMLSEMCH DS    FL1                       encoding mechanism
                   1 *   Type of encoding mechanism
        00000001   1 YMLSE7BT EQU   1                         7 bit
        00000002   1 YMLSE8BT EQU   2                         8 bit
        00000003   1 YMLSEBIN EQU   3                         binary
        00000004   1 YMLSEQP  EQU   4                         quoted printable
        00000005   1 YMLSEB64 EQU   5                         base64
                   1 *
000003             1 YMLSERS1 DS    XL1                       reserved
        00000004   1 YMLSENCD# EQU   *-YMLSETAG
                              YMLSML MF=D,XPAND=CONT_DISP
                   1          MFTST MF=D,PREFIX=Y,MACID=MLS,ALIGN=F,
                   1                DMACID=MLS,SUPPORT=(E,D,C,M,L),DNAME=MLSDISP
000000             2 YMLSDISP DSECT ,
                   1 *   Content disposition
000000             1 YMLSITAG DS    H                         tag of content
                                                               disposition
                   1 *   Tag value(s) for struct _cont_disp
        00000013   1 YMLSTCTD EQU   19                        content disposition
                   1 *
000002             1 YMLSISPT DS    FL1                       content disposition
                   1 *   Disposition type
        00000001   1 YMLSINLN EQU   1                         inline
        00000002   1 YMLSIATT EQU   2                         attachment
                   1 *
000003             1 YMLSIRS1 DS    XL1                       reserved
        00000004   1 YMLSDISP# EQU   *-YMLSITAG
                              YMLSML MF=D,XPAND=MSG_ATT
                   1          MFTST MF=D,PREFIX=Y,MACID=MLS,ALIGN=F,
                   1                DMACID=MLS,SUPPORT=(E,D,C,M,L),DNAME=MLSATT
000000             2 YMLSATT  DSECT ,
                   1 *   Bracketing message or attachment specification
000000             1 YMLSATAG DS    H                         tag of msg | att
                   1 *   Tag value(s) for struct _msg_att
        0000000B   1 YMLSMBEG EQU   11                        msg_begin
        0000000C   1 YMLSMEND EQU   12                        msg_end
        0000000D   1 YMLSABEG EQU   13                        att_begin
        0000000E   1 YMLSAEND EQU   14                        att_end
                   1 *
000002             1 YMLSARS1 DS    XL2                       reserved
        00000004   1 YMLSATT# EQU   *-YMLSATAG