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 |
|
|
|
| No error found. |
|
|
|
| Parameter error. |
|
|
|
| Internal error. |
|
|
|
| Syntax error in the mail parameter. |
|
|
|
| Option file not available. |
|
|
|
| Message or attachment not available. |
|
|
|
| File for SMIME not available. |
|
|
|
| Mail parameter too large. |
|
|
|
| Backend error. |
|
|
|
| Maximum number of orders exceeded. |
|
|
|
| Mail client service not available. |
|
|
|
| Mail parameter address invalid. |
|
|
|
| Resources exhausted. |
|
|
|
| ASTI subsystem not available. |
|
|
|
| No FROM address specified. |
|
|
|
| Unexpected ASTI error. |
|
|
|
| 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 |
| Parameter section | ||
000 |
| Function header | |
008 |
| Input parameter | |
008 |
| Address of the mail parameter area | |
00C |
| Length of the mail parameter area | |
010 |
| Wait for the end of the mail send order? | |
| 1 | Yes | |
| 2 | No; ASTI discards order execution status. | |
| 3 | No; ASTI does not discard order execution status. | |
011 |
| Protocol for encryption and signing | |
| 1 | S/MIME | |
012 |
| Encryption? | |
| 1 | Yes | |
| 2 | No | |
| 3 | Value from user option file | |
013 |
| Signing? | |
| 1 | Yes | |
| 2 | No | |
| 3 | Value from user option file | |
014 |
| Encryption algorithm: | |
| 5 | 3DES | |
| 6 | AES-128 | |
| 7 | AES-192 | |
| 8 | AES-256 | |
| 127 | Value from user option file | |
015 |
| Name of user option file | |
04B |
| Reserved area | |
04C |
| Output parameter | |
04C |
| Order ID for referencing the mail send order if the caller does not wait for the transfer to be completed. | |
05C |
| Return code from backend | |
| 00 | Ok | |
| 01 | Parameter error | |
| 02 | Resource saturation | |
| 03 | SMTP error | |
| 04 | S/MIME error | |
| 0A | Internal error | |
060 |
| May contain error messages in text format (e.g. SMTP error messages of the SMTP server). | |
100 |
| If the YMLSML call returns the return code YMLSASTI, this field contains the ASTI return code. |
VERSION>=2:
Distance | Identifier | Value | Meaning |
| Parameter area | ||
000 |
| Function header | |
008 |
| Input parameters | |
008 |
| Adress of mail parameter area | |
00C |
| Length of mail parameter area | |
010 | YMLSWTTM | Maximal wait time | |
014 |
| Wait for completion of mail send order? | |
|
| Yes | |
|
| No; ASTI discards order execution status. | |
|
| No; ASTI does not discard order execution status. | |
015 |
| Protocol for encryption and signing | |
|
| S/MIME | |
016 |
| Encryption? | |
|
| Yes | |
|
| No | |
YMLSGOPT | 3 | Value from user option file | |
017 |
| Signing? | |
|
| Yes | |
|
| No | |
YMLSGOPT | 3 | Value from user option file | |
018 |
| Encryption algorithm: | |
|
| 3DES | |
|
| AES-128 | |
|
| AES-192 | |
|
| AES-256 | |
YMLSFOPT | 127 | Value from user option file | |
019 |
| Name of user option file | |
04F |
| Reserved area | |
050 |
| Output parameters | |
050 |
| Order ID for referencing the mail send order if the caller does not wait for the transfer to be completed. | |
060 |
| Returncode from backend | |
| 00 | Ok | |
| 01 | Parameter error | |
| 02 | Resource saturation | |
| 03 | General SMTP error | |
| 04 | S/MIME error | |
| 05 | Error with SMTP MAIL command | |
| 06 | Error with SMTP RCPT command | |
| 07 | Error with SMTP DATA command | |
| 08 | Error at access to user option file | |
| 09 | Mail too large | |
| 0A | Internal error | |
064 |
| May contain error messages in text format (e.g. SMTP error | |
104 |
| This field contains the ASTI return code in case the YMLSSML | |
108 |
| Message ID | |
10F |
| 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 |
|
| Envelope sender address (is also placed in the FROM header line if YMLSFFRM is not specified). |
|
| Sender address in the FROM header line. |
|
| List of envelope recipient addresses separated by commas (is also placed in the TO header line if YMLSFTO is not specified). |
|
| List of recipient addresses separated by commas. Is placed in the To header line. |
|
| List of envelope recipient addresses separated by commas (is also placed in the CC header line if YMLSFCC is not specified). |
|
| List of recipient addresses separated by commas. Is placed in the CC header line. |
|
| List of envelope recipient addresses separated by commas. |
|
| Address in the REPLY-TO header line. |
|
| Text for the SUBJECT header line. |
|
| Additional header lines in which the caller can define the field names. |
|
| Beginning of the definition of the message text. |
|
| End of the definition of the message text. |
|
| Beginning of the definition of the attachment. |
|
| End of the definition of the attachment. |
|
| Data definition for message/attachment. |
|
| Character set definition for header/message/attachment. |
|
| Transfer encoding of message/attachment. |
|
| Content type of message/attachment. |
|
| Presentation note for message/attachment. |
|
| Key file (see the user option file “privateKeyFile”). |
|
| File containing an X.509 certificate for signing e-mails with S/MIME (see the user option “signerCertificateFile”). |
|
| File containing additional X.509 certificates for signing e-mails with S/MIME (see the user option “addSignerCertificatesFile”). |
|
| File containing X.509 certificates for encrypting e-mails with S/MIME (see the user option “recipientCertificatesFile”). |
|
| 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, |
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