Copyright (c) 2001 Elron Software Inc. All rights reserved.
Each message (whether for a Message Server or a Results Server) gets a response right away, on the same connection, which tells the sender the status of the message tranmission. If a response has any status value other than 0 (OKAY), it indicates that something is wrong, either with the network or with the sending or receiving application. Every transmission, whether a message or a response, starts with the 32-bit byte count (in network byte order) of the remainder of the transmission.
The Message Server protocol defines three message types:
The Results Server protocol defines two message types:
Here is a detailed description of the protocol and data format used for these servers. Please note that all data elements larger than a byte must be transmitted in network byte order.
Type | Value | Description |
---|---|---|
unsigned long byteCount | [3] | Size of the remainder of this message |
unsigned char version | [3] | MP Socket API version |
unsigned char opcode | [1] | A number which represents the message type (MPAnnounceClient) |
unsigned short port | [1] | Port number which this client's Results Server will be listening to |
Type | Value | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
unsigned long bytecount | [1] | Size of the remainder of this message | ||||||||||
unsigned char status |
|
Status of the sent message |
Type | Value | Description |
---|---|---|
unsigned long byteCount | [varies] | Size of the remainder of this message |
unsigned char version | [3] | MP Socket API version |
unsigned char opcode | [2] | A number which represents the message type (MPBeginSession) |
unsigned long srcDomainSize | [varies] | Size of source domain string |
unsigned char[] srcDomain | [varies] | Source domain string |
unsigned long srcIP | [varies] | Source IP address |
unsigned long dstIP | [varies] | Destination IP address |
unsigned long usersSize | [varies] | Size of the user data |
char[] users | [varies] | Comma-delimited list of users (sender, followed
by the recipient(s)). Each user will consist of the user@domain string, optionally followed by a colon-delimited list of attributes for that user |
Type | Value | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
unsigned long bytecount | [5] | Size of the remainder of this message | ||||||||||
unsigned char status |
|
Status of the sent message | ||||||||||
unsigned long sessionID | [varies] | Session ID created for this session |
Type | Value | Description |
---|---|---|
unsigned long bytecount | [varies] | Size of the remainder of this message |
unsigned char version | [3] | MP Socket API version |
unsigned char opcode | [3] | A number which represents the message type (MPSessionData) |
unsigned long sessionID | [varies] | Session ID for this session |
unsigned long msgSize | [varies] | Size of the message data |
char[] msgData | [varies] | The message data (RFC-822 format) |
Type | Value | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
unsigned long bytecount | [1] | Size of the remainder of this message | ||||||||||
unsigned char status |
|
Status of the sent message |
Type | Value | Description |
---|---|---|
unsigned long bytecount | [6] | Size of the remainder of this message |
unsigned char version | [3] | MP Socket API version |
unsigned char opcode | [4] | A number which represents the message type (MPSessionCancel) |
unsigned long sessionID | [varies] | Session ID for this session |
Type | Value | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
unsigned long bytecount | [1] | Size of the remainder of this message | ||||||||||
unsigned char status |
|
Status of the sent message |
Type | Value | Description |
---|---|---|
unsigned long byteCount | [7] | Size of the remainder of this message |
unsigned char version | [3] | MP Socket API version |
unsigned char opcode | [1] | A number which represents the message type (MPSettings) |
unsigned long maxSize | [varies] | Maximum message size which will be processed (in kbytes) |
unsigned char blockTooLarge | [0 or 1] | Block messages which are larger than maxSize. |
Type | Value | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
unsigned long bytecount | [1] | Size of the remainder of this message | ||||||||||
unsigned char status |
|
Status of the sent message |
Type | Value | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
unsigned long byteCount | [varies] | Size of the remainder of this message | ||||||||||
unsigned char version | [3] | MP Socket API version | ||||||||||
unsigned char opcode | [2] | A number which represents the message type (MPResults) | ||||||||||
unsigned long sessionID | [varies] | Session ID for this session | ||||||||||
unsigned char action |
|
This indicates what action the client should take for this email document | ||||||||||
unsigned char msgType |
|
Type of the email document replacement data. This field, along with the following two fields (msgSize and msgData) represent one changed part of an email message. Any combination of the three types of change data may occur, so there may be from zero to three occurrences of change data with each results message. Use the total message size (byteCount) to indicate if there is more change data to process. Only if the action value is REPLACE_DATA | ||||||||||
unsigned long msgSize | [varies] | Size of the email document replacement data. Only if the action value is REPLACE_DATA | ||||||||||
char[] msgData | [varies] | The email document replacement data. Only if the action value is REPLACE_DATA | ||||||||||
unsigned long nclones | [varies] | Number of clones. Only if action is CLONED_DATA | ||||||||||
unsigned long cloneEnvDataSz | [varies] | Size of the clone envelope data. Only if action is CLONED_DATA | ||||||||||
char[] cloneEnvData | [varies] | Clone envelope data. Only if the action is CLONED_DATA | ||||||||||
unsigned long cloneMsgDataSz | [varies] | Size of the clone msg data. Only if action is CLONED_DATA | ||||||||||
char[] cloneMsgData | [varies] | Clone message data. Only if the action is CLONED_DATA |
Type | Value | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
unsigned long bytecount | [1] | Size of the remainder of this message | ||||||||||
unsigned char status |
|
Status of the sent message |