Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

The IMAPIProp::OpenProperty MAPI function returns a MAPI_E_NOT_FOUND (0x8004010F) error


View products that this article applies to.

Summary

On a Microsoft Exchange Server 2003 server, when you try to access an e-mail message by using MAPI, the IMAPIProp::OpenProperty MAPI function may return a MAPI_E_NOT_FOUND (0x8004010F) error. The MAPI_E_NOT_FOUND (0x8004010F) error will apply to one of the following MAPI properties:
  • PR_BODY
  • PR_BODY_HTML
  • PR_RTF_COMPRESSED
Note You may receive a MAPI_E_NOT_FOUND (0x8004010F) error even if there is data in one or more of these MAPI properties.

↑ Back to the top


Symptoms

This problem may occur if all of the following statements are true:
  • The e-mail message arrived at the Exchange Server 2003 server in Simple Mail Transfer Protocol (SMTP) format.
  • The content of the e-mail message was not modified before your application opened the e-mail message by using one of the following MAPI functions:
    • IMsgStore::OpenEntry
    • IMAPIContainer::OpenEntry
    • IMAPISession::OpenEntry
  • The body of the e-mail message was modified by another MAPI client after your application opened the e-mail message, but before your application called the IMAPIProp::OpenProperty MAPI function.

↑ Back to the top


Cause

When an e-mail message in SMTP format arrives at the Exchange Server 2003 server, the content of the e-mail message is stored in the .stm file. When a MAPI client accesses the e-mail message, the content of the e-mail message is retrieved from the .stm file. However, if another MAPI client modifies the content of the e-mail message, a MIME-to-MAPI conversion is performed. When this occurs, the content of the e-mail message is promoted from the .stm file to the .edb file.

When your application first accesses the e-mail message, the content of the e-mail message are stored in the .stm file. When another MAPI client modifies the content of the e-mail message after your application first accessed the e-mail message, the content of the e-mail message is promoted from the .stm file to the .edb file. However, the IMessage pointer that is opened by your application is unaware that the content of the e-mail message has been promoted from the .stm file to the .edb file.

Therefore, when your application tries to access the body of the e-mail message, the IMessage pointer that is opened by your application cannot locate the it.

↑ Back to the top


Resolution

In order to access the body of the e-mail message, you must release the current IMAPIProp or IMessage pointer that you have for the e-mail message. Then, you must obtain a new IMAPIProp or IMessage pointer by using one of the MAPI functions that is described in step 2 in the Symptoms section.

↑ Back to the top


Status

This behavior is by design.

↑ Back to the top


More information

Steps to reproduce the behavior

  1. Send an e-mail message in SMTP format to the Exchange Server 2003 server. You can do this by using Microsoft Outlook Express, or by using a simple Microsoft Collaboration Data Ojbects for Windows 2000 (CDOSYS) VBScript. Remember to insert text in the body of the e-mail message.

    For more information about how to send an e-mail message by using CDOSYS, click the following article number to view the article in the Microsoft Knowledge Base:
    286431� How to send HTML-formatted mail using CDO for Windows 2000 and a remote SMTP service
  2. Using Extended MAPI on your application, open the e-mail message by using one of the MAPI functions that is described in step 2 in the Symptoms section.
  3. Using another MAPI client that is separate from your Extended MAPI code, modify the content of the e-mail message. For example, a simple way to modify the content of the e-mail message is to flag it in Microsoft Outlook.
  4. Using your application, open the PR_BODY MAPI property by using the IMAPIProp::OpenProperty MAPI function.
  5. You receive a MAPI_E_NOT_FOUND (0x8004010F) error.

↑ Back to the top


Keywords: KB898884, kbprb

↑ Back to the top

Article Info
Article ID : 898884
Revision : 6
Created on : 10/25/2007
Published on : 10/25/2007
Exists online : False
Views : 342