Change Mail Message (QzmfChgMailMsg) API


  Required Parameter Group:

1 Mail message identifier Input Char(32)
2 Message descriptor attributes Input Array of Char(*)
3 Number of message descriptor attributes Input Binary(4)
4 Format name Input Char(8)
5 Error code I/O Char(*)

  Service Program: QZMFASRV

  Threadsafe: No

The Change Mail Message (QzmfChgMailMsg) API changes information about a mail message that was previously created using the Create Mail Message (QzmfCrtMailMsg) API. The Change Mail Message (QzmfChgMailMsg) API can be used to change one or more list items for each of the message descriptors on a single call. This means that one call can result in changes, for example, to the envelope list, the recipient list, and the attachment reference list. The Change Mail Message (QzmfChgMailMsg) API first checks if the caller has the proper authority to request the changes. If any rule is violated, then the entire change fails. If the requested changes are acceptable, the changes that are specified are made to the list. Each list item does not retain its same unique list identifier after the change is completed.

When processing recipient entries using this API, the framework can be instructed to put a recipient entry back so that it can be processed by other snap-in programs. This causes the recipient entry to be processed again. A recipient is marked to be processed again by setting the recipient status to -1.

Note: The Change Mail Message (QzmfChgMailMsg) API can only be called from a Snap-In exit point.

Restriction: Originator, report-on, and report-to entries can be added but not changed. The unique identifier fields for these list entries must be -1.


Authorities and Locks

None.


Required Parameter Group

Mail message identifier
INPUT; CHAR(32)

The identifier of the mail message to be changed. The mail message identifier is composed of characters A through Z and 0 through 9 only.

Message descriptor attributes
INPUT; ARRAY OF CHAR(*)

This array contains pointers to the message descriptor attributes. It contains lengths of these message descriptor attributes, along with the format name of the data that is provided (see Example of a Message Descriptor for the Create Mail Message (QzmfCrtMailMsg) or Change Mail Message (QzmfChgMailMsg) API). The format variable within this parameter list indicates to what type of list the pointer refers. See Change Message Common Header for a description of the header data associated with each parameter list.

Number of message descriptor attributes
INPUT; BINARY(4)

The number of message descriptor attributes to change. At least one message descriptor attribute must be specified on a call to this API.

Format name
INPUT; CHAR(8)

The format of the message descriptor attributes that is being passed. This field must be set to CHGM0100.

Error code
I/O; CHAR(*)

The structure in which to return error information. For the format of the structure, see Error code parameter.


CHGM0100 Format

The following table shows the data that must be provided for each message descriptor attribute.

Offset Type Field
Dec Hex
0 0 POINTER Message descriptor pointer
16 10 BINARY(4) Length of the message descriptor
20 14 CHAR(8) Message descriptor format name
28 1C BINARY(4) Reserved (must be zero)


Message Descriptor

Each entry of the message descriptor attributes consists of:


Change Message Common Header

The following table shows the common header section that is always included at the beginning of each entry.

Offset Type Field
Dec Hex
0 0 BINARY(4) Length of this message descriptor
4 4 BINARY(4) Reserved (must be set to zero)
8 8 CHAR(8) Message descriptor format name.
16 10 BINARY(4) Offset of the first entry in the message descriptor
20 14 BINARY(4) Number of entries in this message descriptor
24 18 BINARY(4) Reserved (must be set to zero)
* * CHAR(*) Message descriptor data.

The common header is used for all of the different formats that can be supplied on the Change Mail Message (QzmfChgMailMsg) API. The common header must always be included. There must be one or more list items after the common header section.

The list item or items to be changed are identified using the unique list identifier that is assigned by the mail server framework. The unique list identifiers are part of the lists that are passed to the exit programs or are part of the information returned by the Retrieve Mail Message (QzmfRtvMailMsg) API. The unique list identifiers are also passed to snap-in exit programs. For a new addition to the list, the parameter list unique identifier must be set to -1. There is no way to remove an entry using this API. Each list must contain unique identifiers that are in ascending order, with add entries (unique identifier of -1) at the end of the list.

For substitution changes, a parameter list unique identifier must be specified once, along with the data that is to be substituted. For expansion changes, a parameter list unique identifier must be specified multiple times, once for each expansion list item that is to be added. After the API has completed, the unique identifiers that were changed are no longer valid and may not be used in future calls to this API. The retrieve mail message (QzmfRtvMailMsg) API passes lists with entries sorted so that unique identifiers are in ascending order. Snap-in exit programs also receive sorted lists.


Message Descriptor Formats

One of the following message descriptor formats must be used to describe the data that follows the common header. There may be multiple instances of the formats following the common header, depending on the size of the parameter list.


ORCL0100 Format (Original Recipient Entry)

Offset Type Field
Dec Hex
0 0 BINARY(4) Length of this entry
4 4 BINARY(4) Displacement of the original recipient address from the beginning of this ORCL0100 entry
8 8 BINARY(4) Length of the original recipient address
12 C CHAR(4) Address type
16 10 BINARY(4) Original recipient address coded character set identifier(CCSID)
20 14 BINARY(4) Distribution type
24 18 BINARY(4) Reply requested flag
28 1C BINARY(4) Unique identifier
32 20 BINARY(4) Unique identifier of referenced ORCL0100 entry
36 24 BINARY(4) Reserved (must be set to zero)
* * CHAR(*) Original recipient address


ORGL0100 Format (Originator Entry)

Offset Type Field
Dec Hex
0 0 BINARY(4) Length of this entry
4 4 BINARY(4) Displacement of the origin address from the beginning of this ORGL0100 entry
8 8 BINARY(4) Length of origin address
12 C CHAR(4) Address type
16 10 BINARY(4) Origin address coded character set identifier (CCSID)
20 14 BINARY(4) Unique identifier
24 18 BINARY(4) Unique identifier of referenced ORGL0100 entry
28 1C BINARY(4) Reserved (must be set to zero)
* * CHAR(*) Origin address


ENVL0100 Format (Envelope Entry)

Offset Type Field
Dec Hex
0 0 BINARY(4) Length of this entry
4 4 BINARY(4) Displacement of the envelope from the beginning of this ENVL0100 entry
8 8 BINARY(4) Length of envelope
12 C CHAR(4) Envelope type
16 10 BINARY(4) Unique identifier
20 14 BINARY(4) Unique identifier of referenced ENVL0100 entry
24 18 BINARY(4) Reserved (must be set to zero)
* * CHAR(*) Envelope


RCPL0100 Format (Recipient Entry)

Offset Type Field
Dec Hex
0 0 BINARY(4) Length of this entry
4 4 BINARY(4) Displacement of the snap-in provided information (SPIN) from the beginning of this RCPL0100 entry
8 8 BINARY(4) Length of snap-in provided information (SPIN)
12 C BINARY(4) Displacement of the original recipient address from the beginning of this RCPL0100 entry
16 10 BINARY(4) Length of recipient address
20 14 CHAR(4) Address type
24 18 BINARY(4) Recipient address coded character set identifier (CCSID)
28 1C BINARY(4) Reason code
32 20 BINARY(4) Diagnostic code
36 24 CHAR(4) Message type
40 28 BINARY(4) Status
44 2C BINARY(4) Reserved
48 30 BINARY(4) Unique identifier
52 34 BINARY(4) Reserved (must be set to zero)
* * CHAR(*) Recipient address
* * CHAR(*) Snap-in provided information (SPIN)


ROAL0100 Format (Report-on Address Entry)

Offset Type Field
Dec Hex
0 0 BINARY(4) Length of this entry
4 4 BINARY(4) Displacement of the snap-in provided information (SPIN) from the beginning of this ROAL0100 entry
8 8 BINARY(4) Length of snap-in provided information (SPIN)
12 C BINARY(4) Displacement of the report-on address from the beginning of this ROAL0100 entry
16 10 BINARY(4) Length of address
20 14 CHAR(4) Address type
24 18 BINARY(4) Report-on address coded character set identifier (CCSID)
28 1C BINARY(4) Reason code
32 20 BINARY(4) Diagnostic code
36 24 BINARY(4) Reserved
40 28 BINARY(4) Unique identifier
44 2C BINARY(4) Unique identifier of referenced ROAL0100 entry
* * CHAR(*) Report-on address
* * CHAR(*) Snap-in provided information (SPIN)


RPYL0100 Format (Reply-to Address Entry)

Offset Type Field
Dec Hex
0 0 BINARY(4) Length of this entry
4 4 BINARY(4) Displacement of the reply-to address from the beginning of this RPYL0100 entry
8 8 BINARY(4) Length of reply-to address
12 C CHAR(4) Address type
16 10 BINARY(4) Reply-to address coded character set identifier (CCSID)
20 14 BINARY(4) Unique identifier
24 18 BINARY(4) Unique identifier of referenced RPYL0100 entry
28 1C BINARY(4) Reserved (must be set to zero)
* * CHAR(*) Reply-to address


RTAL0100 Format (Report-to Address Entry)

Offset Type Field
Dec Hex
0 0 BINARY(4) Length of this entry
4 4 BINARY(4) Displacement of the report-to address from the beginning of this RTAL0100 entry
8 8 BINARY(4) Length of address
12 C CHAR(4) Address type
16 10 BINARY(4) Report-to address coded character set identifier (CCSID)
20 14 BINARY(4) Unique identifier
24 18 BINARY(4) Unique identifier of referenced RTAL0100 entry
28 1C BINARY(4) Reserved (must be set to zero)
* * CHAR(*) Report-to address


ATTL0100 Format (Attachment Reference Entry)

Offset Type Field
Dec Hex
0 0 BINARY(4) Length of this entry
4 4 BINARY(4) Displacement of the attachment reference from the beginning of this ATTL0100 entry
8 8 BINARY(4) Length of attachment reference
12 C CHAR(4) Attachment reference type
16 10 BINARY(4) Unique identifier
20 14 BINARY(4) Unique identifier of referenced ATTL0100 entry
24 18 BINARY(4) Reserved (must be set to zero)
* * CHAR(*) Attachment reference


Field Descriptions

Address type. The type of address that is contained in the entry.

Attachment reference. A reference to an attachment that is associated with the message.

Attachment reference type. The type of attachment that is contained in the entry.

Diagnostic code. A code that indicates the cause of a problem which caused the delivery of a message to this address to fail. The diagnostic code is assumed to contain the X.400 nondelivery diagnostic code.

Displacement of the attachment reference from the beginning of this ATTL0100 entry. The displacement from the beginning of this entry to the attachment reference in this entry.

Displacement of the envelope from the beginning of this ENVL0100 entry. The displacement from the beginning of this entry to the envelope in this entry.

Displacement of the original recipient address from the beginning of this ORCL0100 entry. The displacement from the beginning of this entry to the original recipient address in this entry.

Displacement of the origin address from the beginning of this ORGL0100 entry. The displacement from the beginning of this entry to the origin address in this entry.

Displacement of the recipient address from the beginning of this RCPL0100 entry. The displacement from the beginning of this entry to the recipient address in this entry.

Displacement of the report-on address from the beginning of this ROAL0100 entry. The displacement from the beginning of this entry to the report-on address in this entry.

Displacement of the reply-to address from the beginning of this RPYL0100 entry. The displacement from the beginning of this entry to the reply-to address in this entry.

Displacement of the report-to address from the beginning of this RTAL0100 entry. The displacement from the beginning of this entry to the report-to address in this entry.

Distribution type. The type of distribution associated with each recipient entry. The possible values are:

0 Normal message recipient
1 CC (carbon copy) recipient
2 BCC (blind carbon copy) recipient

Envelope. A string of data representing information about the message, aside from the attachments and its recipients.

Envelope type. The type of envelope that is contained in the entry.

Format name. The content and format of the information provided for each message parameter. The possible values are:

ORCL0100 Original recipient entry
ORGL0100 Originator entry
ENVL0100 Envelope entry
RCPL0100 Recipient entry
ROAL0100 Report-on address entry
RPYL0100 Reply-to address entry
RTAL0100 Report-to address entry
ATTL0100 Attachment reference entry

Length of address. The length of address that is contained in the entry. The maximum length of an address is 1024 bytes.

Length of attachment reference. The length in bytes of the attachment reference that is contained in the entry.

Length of envelope. The length of envelope that is contained in the entry.

Length of message descriptor. The length in bytes of the message descriptor that is being pointed to by the pointer to the message descriptor. The maximum length of a message descriptor is 16 million bytes.

Length of origin address. The length of the origin address for this entry. The maximum length of an origin address is 1024 bytes.

Length of original recipient address. The length of the original recipient address for this entry. The maximum length of an original recipient address is 1024 bytes.

Length of recipient address. The length in bytes of the recipient address. The maximum length of a recipient address is 1024 bytes.

Length of reply-to address. The length in bytes of the reply-to address. The maximum length of a reply-to address is 1024 bytes.

Length of snap-in provided information (SPIN). The length in bytes of the snap-in provided information (SPIN). The maximum length of the SPIN is 256 bytes.

Length of this entry. The length in bytes of this entry. This is used to get to the next entry.

Length of this message descriptor. The length in bytes of this message descriptor. The maximum length of a message descriptor is 16 million bytes.

Message descriptor data. One or more parameter list formats that follow the common header. Message descriptors are made up of a common header and a list of entries. The format of each entry in the list is defined by the format name associated with the message descriptor, which is located in the common header. The number of entries in the list is also defined in the common header.

Message type. The type of message that is associated with the entry.

Number of bytes available for this message descriptor. The number of bytes available in the space where the mail server framework puts the information being retrieved.

Offset of the first entry in the message descriptor. The offset from the beginning of this message descriptor to the first entry in the list of entries.

Origin address. A string that represents the address associated with the originator of the message. The contents and format of the string are not defined by the mail server framework. It is assumed that the address type associated with the origin address defines the contents of the origin address field.

Origin address coded character set identifier (CCSID). The CCSID provided for the origin address. Valid values for the CCSID are 1 through 65533 and 65535.

Original recipient address. A string that represents the address associated with the original recipient of the message. The contents and format of the string are not defined by the mail server framework. It is assumed that the address type associated with the original recipient address defines the contents of the original recipient address field.

Original recipient address coded character set identifier (CCSID). The CCSID provided for the original recipient address. Valid values for the CCSID are 1 through 65533 and 65535.

Reason code. A code that identifies reasons associated with the message delivery to this address. In the case of a nondelivery entry, this field would contain the reason the delivery of this message to this recipient failed. The reason code is assumed to contain the X.400 nondelivery reason code.

Recipient address. A string that represents the address associated with a recipient of the message. The contents and format of the string are not defined by the mail server framework. It is assumed that the address type associated with the recipient address defines the contents of the recipient address field.

Recipient address coded character set identifier (CCSID). The CCSID provided for the recipient address. Valid values for the CCSID are 1 through 65533 and 65535.

Reply requested flag. Whether this original recipient should reply to the message. The possible values are as follows:

0 A reply is not requested from this original recipient
1 A reply is requested from this recipientz

Reply-to address. A string that represents the address to be replied to. The contents and format of the string are not defined by the mail server framework. It is assumed that the address type associated with the reply-to address defines the contents of the reply-to address field.

Reply-to address coded character set identifier (CCSID). The CCSID provided for the reply-to address. Valid values for the CCSID are 1 through 65533 and 65535.

Report-on address. A string which represents the address to be reported on. The contents and format of the string are not defined by the mail server framework. It is assumed that the address type associated with the report-on address defines the contents of the report-on address field.

Report-on address coded character set identifier (CCSID). The CCSID provided for the report-on address. Valid values for the CCSID are 1 through 65533 and 65535.

Report-to address. A string which represents the address to be reported to. The contents and format of the string are not defined by the mail server framework. It is assumed that the address type associated with the report-to address defines the contents of the report-to address field.

Report-to address coded character set identifier (CCSID). The CCSID provided for the report-to address. Valid values for the CCSID are 1 through 65533 and 65535.

Reserved. All reserved fields must be set to zero.

Snap-in provided information (SPIN). An area where snap-ins can store information that other snap-ins may use. SPIN provides a place where information relating to a specific recipient can be stored and used by snap-ins in the same or different exit points. This is completely user-defined and user-interpreted data.

Status. The status associated with each recipient entry. The possible values are:

1 Forwarded (remote)
2 Ignore
3 Local
4 Nondeliverable
5 Security violation

Unique identifier. A unique identifier that differentiates each item within a particular list. Identifiers are generated for each list item when the Create Mail Message (QzmfCrtMailMsg) API has successfully completed. These unique identifiers are temporary and may change as the mail service processes a message. List entries are placed in message descriptors such that unique identifiers are in ascending order.

Unique identifier of parent entry. The unique identifier associated with the parent entry of this entry. A parent entry is an entry that had been replaced by a single or multiple entries.

Unique identifier of referenced entry. The unique identifier of another ORCL0100, ORGL0100, ENVL0100, RTAL0100, RPYL0100, ROAL0100, or ATTL0100 entry that this entry refers to. This field can be used to create entry cross references as new entries are added.


Error Messages

Message ID Error Message Text
CPF24B4 E Severe error while addressing parameter list.
CPF3C90 E Literal value cannot be changed.
CPF9872 E Program or service program &1 in library &2 ended. Reason code &3.
CPFAF80 E Syntax error on call to MSF API. Reason code &1.
CPFAF81 E Parameter value error on call to MSF API. Reason code &1.
CPFAF82 E Error occurred during running of MSF API.
CPFAF83 E Parameter error on call to MSF API. Reason code &1.
CPFAF84 E MSF API failed. MSF message identifier not found.
CPFAF85 E MSF API failed. Request not allowed.
CPFAF86 E MSF API failed. Parameter values not valid for exit point.
CPFAF87 E MSF validate data field exit program error occurred.
CPFAF88 E Error occurred on call to MSF exit point program.
CPFAF8A E MSF API failed. List cannot be expanded or replaced.


API introduced: V3R1

[ Back to top | Office APIs | APIs by category ]