Message store providers do not have to support incoming message submissions; that is, the ability for transport providers and the MAPI spooler to use the message store provider as a delivery point for messages. However, if your message store provider does not support incoming message submissions, it cannot be used as the default message store.
To support incoming message submissions, your message store provider must
Support the IMsgStore::NotifyNewMail method so that the MAPI spooler can inform the message store provider that a new message has arrived.
Implement notifications so that clients can register for new message notification. Strictly speaking, notifications are optional, but they are strongly recommended.
The sequence of method calls that occurs when an incoming message is delivered to a message store is:
The MAPI spooler passes the message object to the transport provider.
The transport provider fills in the message's properties with data from the underlying messaging system and calls the message object's IMAPIProp::SaveChanges method.
The MAPI spooler calls any registered hook providers. The message may be modified, moved to a different folder, deleted, and so on.
The message store provider uses its notification method to inform registered clients that a new message has arrived.