Failed deletion with MFCMAPI

Aug 6, 2012 at 5:00 PM


I apologise if this has been covered elsewhere but my searches have yet to find a solution. We have a corrupt message in a Journal mailbox which I have been unable to delete even using MFCMAPI.

Apologies also if this is the incorrect forum for such a discussion, however posted here in reference to the errors thrown within the MFCMAPI utility.

We're running Exchange 2010 SP1 (14.01.0218.013) on (VMWare) Windows Server '08 R2 Enterprise Edition.

FYI prior to attempts below, a Mailbox Repair Request through Exchange completed successfully against the database, as did an ESEUTIL integrity check.

Using MFCMAPI June 2012 release, I open the Journal Mailbox, load the Inbox contents table and click on the message - then I receive the following popup:

 Code: MAPI_E_CORRUPT_DATA == 0x8004011B
 Function DefaultOpenItemProp( iItem, mfcmapiDO_NOT_REQUEST_MODIFY, lppProp)
 File ContentsTableListCtrl.cpp
 Line 1467

From what I can gather from comments in ContentsTableListCtrl.cpp it appears DO_NOT_REQUEST_MODIFY is called if Access Denied is received from a Modify request - have verified I have full access permission (both via role and implicit) to the Journal Mailbox and mailboxes of the sender/recipient,

After clicking OK to above message, I then receive another dialog:

 Code: MAPI_E_CORRUPT_DATA == 0x8004011B
 Function m_lpContentsTableListCtrl->DefaultOpenItemProp( iSelectedItem, bModify, lppMAPIProp)
 File: ContentsTabledlg.cpp
 Line 820

MFCMAPI will then populate (what looks to be) the bottom pane with an "incomplete" property table for the message.

If I right-click on the message in top pane and select “Delete Message” (Permanent delete passing DELETE_HARD_DELETE), there is no error, but the message remains in the contents table even after Refresh (have tried other delete options as well, with same issue)

If I try to open the item, I receive the error dialogues lised above, and then also the following:

 Code: MAPI_E_CORRUPT_DATA == 0x8004011B
 Function OpenItemProp( iItem, mfcmapiREQUEST_MODIFY, (LPMAPIPROP*)&lpMessage)
 File: FolderDlg.cpp
 Line 1186

I have tried this on multiple workstations / servers with a mix of Outlook 2003, Outlook 2007, Outlook 2010 - all produce same error. Unfortunately we don't have any machines running x64 version of Outlook to test x64 version of MFCMAPI.

I have seen these errors in MFCMAPI previously, and was able to work around it then by right-clicking on the message in the content table, then selecting “Advanced\Get props by longterm EID" - this retrieved the full content/property table for the message and I was then able to delete the message successfully using MFCMAPI. I have attempted to repeat this process for the current message but it was unsuccessful this time (no further properties were retrieved after refresh).

At this point I am thinking my only option is to export mailbox content to PST (skipping bad items obviously), zap the mailbox, and then create a brand new mailbox, but I am very open to any other ideas to resolve the MAPI error first?

Thank you very much in advance for your time and advice!

Aug 6, 2012 at 5:17 PM

In this scenario, the server is the one returning the error. MFCMAPI just reports it. Your export/import resolution sounds workable if you don't want to chase the problem on the server side. If you do want to chase it there, I'd start with looking at event logs, then the RCA logs on the CAS.

Aug 6, 2012 at 6:52 PM

Hi Stephen

Thank you very much for your quick and helpful response :)