The recipient table contains information about all the recipients for a message. Message store providers implement recipient tables and client applications use them. Clients access a recipient table by making a call to the IMessage::GetRecipientTable method, or if the message store provider supports it, to the IMAPIProp::OpenProperty method. Clients access recipient tables with OpenProperty by specifying PR_MESSAGE_RECIPIENTS for the property tag and IID_IMAPITable for the interface identifier. Changes to a recipient table can be made by calling the IMessage::ModifyRecipients method.
Recipient tables have a different column set depending on whether the message has been submitted. The following properties make up the required column set in recipient tables:
The optional properties are:
Submitted messages should include these additional properties in their required column set:
Depending on a provider's implementation, additional columns, such as PR_SENDER_NAME and ENTRYID, might be in the table.
Any message store provider that supports message transmission — as indicated by the STORE_SUBMIT_OK bit being set in the provider's PR_STORE_SUPPORT_MASK property — should offer support for a particular set of restrictions in a recipient table implementation. The AND, OR, exist, and property restrictions are among the types of restrictions that should be available to recipient table users. Only the equal and not equal operators need to be supported on the property restriction. These restrictions must work with the following properties: