Custom MAPI transport providers may not function in Outlook 2003 and in Outlook 2002
This article was previously published under Q304116 SYMPTOMS
Transport providers that call the IMAPISupport::SpoolerNotify method to specify the NOTIFY_SENTDEFERRED flag that is running on a computer that has Microsoft Outlook 2002 or Microsoft Office Outlook 2003 installed, may receive a Non-Delivery Reports (NDR) and the messages for that transport are not sent. Additionally, transport providers that implement functions that result in calls to the MAPI Spooler experience unexpected behaviors or the loss of functionality. The following is a list that contains the application programming interfaces (APIs) that are affected, but the list is not limited to these APIs:
CAUSE
Outlook 2002 and Outlook 2003 have redesigned the use of the MAPI Spooler. The Mapisp32.exe file process is no longer used in Outlook 2002 and in Outlook 2003. With the new design, the Outlook Protocol Manager (OPM) calls the MAPI Protocol Handler (MPH), which calls each of the MAPI transports as needed. If the MAPI transport registers that it can handle a specific type of message, such as the FAX message type that is written by a third-party software company, the transport is responsible for sending that message and setting the PR_RESPONSIBILITY flag to TRUE, or an NDR is produced. The behavior occurs if the transport does not mark the recipients as handled before it returns to the MAPI Spooler that the message was deferred from. Not marking the recipients as handled has always caused issues. However, the MAPI Spooler allows the behavior because no other transports will handle the recipient type in question, and because it does not consider the message finished until the deferred message is actually sent. Deferred messages are sent if the transport calls back on the spooler notify or if another message that required a legacy transport is sent. Calling send and receive without messages to send does not cause the OPM to send the deferred message because the transport does not indicate that it was ready. There is not a way for the transport to programmatically control the Send/Receive function with the new design in Outlook 2002 and in Outlook 2003 because the OPM is in control of this functionality. RESOLUTION
To resolve this behavior, developers of transport providers need to redesign their providers prior to upgrading their customers to Outlook 2002 or to Outlook 2003.
WORKAROUND
In relation to the IMAPISupport::SpoolerNotify method, the transport provider needs to rework the logic to account for the new design. To process messages, the transport must deliver the message when it receives them, set the PR_RESPONSIBILITY flag to TRUE, and return to the MPH. Work arounds for the loss of functionality may not exist for the other transport APIs and are currently unavailable. STATUSThis behavior is by design.
All MSDN documentation that references or describes the MAPI Spooler should be considered obsolete in the context of Outlook 2002 and of Outlook 2003. Developers of transport providers should reconsider their products functionality and feature set.
| Article Translations
|

Back to the top
