Sending Messages using Hook Providers and Preprocessors
The following diagram illustrates the interaction between MAPI components involved in the message sending process.

The steps in this process are:
-
The message store provider, on behalf of a client application, notifies the MAPI spooler that there is a new message to send.
-
The MAPI spooler calls each registered preprocessor to act on the message.
-
The MAPI spooler delivers the message to any transport providers required.
-
Transport providers transmit the message to the underlying messaging systems.
-
The MAPI spooler calls each preprocessor's RemovePreprocessInfo function.
-
The MAPI spooler calls hook providers after all transport providers have completed their work.