The MAPI spooler is a separate process within the MAPI subsystem, responsible for sending messages to and receiving messages from a messaging system. The MAPI spooler plays a vital role in message receipt and delivery. When a messaging system is unavailable, the MAPI spooler stores the messages and automatically forwards them at a later time. This ability to hold on to or send data when necessary is known as store and forward, a critical feature in environments where remote connections are common and network traffic is high. The MAPI spooler runs as a background process, doing much of its work when a client application is idle, thus improving the responsiveness of the client application.
The MAPI spooler has additional responsibilities related to message distribution. These extra duties include:
The following illustration shows at a high level how a message flows from a client to the messaging system. The user of a client application sends a message to one or more recipients. The message store provider initiates the sending process, formatting the message with additional information needed for transmission.
The MAPI spooler receives the message if:
If the MAPI spooler receives the message, it performs any required preprocessing, and delivers it to the appropriate transport provider. The transport provider gives the message to its messaging system which sends it to its intended recipient.
With incoming messages, the flow is reversed. The transport provider receives a message from its messaging system and notifies the MAPI spooler. The spooler performs any necessary postprocessing and informs the message store provider that a new message has arrived. This notification causes the client to refresh its message display, enabling the user to read the new message.