Platform SDK: MAPI |
In order to be the default message store, a message store provider must implement an Inbox and an Outbox folder. They are typically stored within the IPM subtree of a message store. These folders are special in that they are designated as the folders that messages are delivered to and sent from, but no special functionality is required of them. Sending and receiving messages happens by way of defined call sequences between client applications, the MAPI spooler, and the message store provider. The Inbox and Outbox folders are simply folders that are used to hold messages during those call sequences. The important point is not that the folders are special, or even that they are named Inbox and Outbox; the important point is that the message store provider uses them as part of its support for sending and receiving messages.
To support receiving messages, the message store provider must implement the IMsgStore::GetReceiveFolderTable and IMsgStore::GetReceiveFolder methods. See Receiving Messages with Message Store Providers for details.
To support sending messages, the message store provider must support the IMsgStore::GetOutgoingQueue method in addition to the other methods used by the MAPI spooler during the message sending process. A message store's outgoing queue does not have to correspond to an actual folder anywhere in the message store's folder tree. However, it is customary for a message store provider to show the contents of the outgoing message queue in the Outbox folder, if there is one. Doing so gives client applications a convenient way to indicate the status of messages that the user has sent, since an Outbox folder can be displayed along with all the other folders in a message store. See Sending Messages with Message Store Providers for details.