Continuing with the tools series I will briefly describe MFCMAPI tool in this post. MFCMAPI is one of most complex tools that we can use to investigate Outlook issues and not only.
Taking in consideration the complexity of this tool, I will not be able to describe everything or to give examples for each feature in this post and I will try to focus on MFCMAPI most used features while checking different Outlook issues. As a case study I added a scenario when attachments are “missing” in a received message
Download link: http://mfcmapi.codeplex.com/
Warning This is a powerful tool whereby you can change raw data. Changes to data may be difficult to reverse. This tool enables the user to change the data that are not valid values and to enter corrupted data. This can be difficult or impossible to recover from. This tool is reserved for professionals who understand how MAPI and Exchange work and should not be used casually.
Connecting to your profile using MFCMAPI
In order to connect to a mailbox you need to use the Session menu and Logon -> Display Store Table. A prompt will be displayed that will allow you to choose the Outlook profile.
Online mode versus Cache mode view in MFCMAPI
Depending on your Outlook profile configuration Online or Exchange Cache Mode you will have one of the following displays in MFCMAPI. If your Outlook profile is in Online mode you will see “Top of Information Store”. If your Outlook profile is configured with Exchange Cache Mode you will see “IPM_SUBTREE” for your store.
Online Mode View: Exchange Cache Mode View:
How to save MAPI properties of an Item
In order to save the MAPI properties of an item you have 2 options. You can use the Property Pane menu or you can use the contextual menu after selecting the item.
a) Property Pane
For example if you want to save the MAPI properties of a message in your Inbox:
- Expand the Top of Information Store/IPM_SUBTREE
- Double click on Inbox folder
- Select the message
- You can identify the message by checking the Subject column in the upper pane
- In the lower pane you will have the MAPI properties of the selected message
- In order to save the content of lower pane use Property Pane -> Save Property Pane Contents …
- Next you will be prompted with the classic Save As windows and you will be invited to save the contents as XML
b) Contextual menu
Another way to save the MAPI properties of an item, in our case a message in Inbox using the contextual menu:
- Select the message in the Inbox folder
- Right click on this message
- Next you can choose the Save Message(s) to File
- Again you will be prompted to save the content as XML
How to check permissions on a folder
In order to check the permissions on mailbox folder we can use MFCMAPI to see which user has rights on that particular folder. You will also be able to see the permissions that that user has on the analyzed folder.
- Select the folder
- Right-click on the folder and choose: Display ACL table…
- The “Display ACL Table” window will appear
- In the upper pane you will have the list of users that have permissions on that particular folder
- As shown in the screenshot below you can see the name of the user (PR_MEMBER_NAME), the rights associated (MEMBER RIGHTS) etc.
How to check Public Folders
MFCMAPI can be used also to check the Public Folder structure. Using MFCMAPI you can access the created Public Folders but also the System Folders, including Free/Busy, Offline Address Book, EFORMS Registry (Forms Library) etc.
In order to check these folders:
a) Once you are connected in MFCMAPI
b) In the main window, double click on the line that has as value : Public Folders for the Display Name column
c) A new window will appear with the public folders structure
For example in the screenshot above I have one public folder (MyTestPublicFolder) under the Default Public Folders (IPM_SUBTREE) and the list of all system folders under NON_IPM_SUBTREE.
MFCMAPI allows you to check the content of these folders. Also you can check the permissions on these folders and much more.
View .MSG message or covert EML –MSG MSG-EML
Another interesting feature of MFCMAPI is the MSG-EML conversion. These conversions can be useful for example when analyzing text rendering issues in Outlook and you would like to have the full message source of a message. Also MFCMAPI allows you to open directly an MSG file you saved on your disk in order to analyze the MAPI properties.
View message attachments – Case study: Attachments are not displayed
When analyzing a message you can also check the attachment table for that message and the recipient list. You might have for example a case where the attachment is not displayed in Outlook.
You received a message with attachment in Outlook and this is confirmed by the attachment icon that is displayed next to the message in the reading pane.
When you open the message you don’t see any attachment.
In this case one thing you can do is to check the MAPI properties of the message and more specific the attachment table in order to see if you really have an attachment for this message.
a) Select folder that contains your message (in my case Inbox and the attachment name is Sunset.jpg)
b) Select the message that normally has an attachment and right click on it in order to choose the Display Attachment Table option (next to this option you have also the Display Recipient Table if you want to check the recipient list for a message)
c) A new window will open (Attachments)
d) Normally if your message contains an attachment you will see it in the upper pane
e) For my case, I can see that in fact I have an attachment. The question is: Why we cannot see this attachment when opening the message?
f) What you should do next is to select the attachment and check in the lower pane the MAPI properties
g) I will next check the following property: PR_ATTACHMENT_HIDDEN. In my case I can see that the value of this MAPI property is: True.
h) This might explain why I cannot see the attachment in Outlook.
i) I will modify change the value of this property to False in order to see if I will be able to solve my problem.
j) I will double click on this property and the Property Editor window will appear
k) I will uncheck the Boolean checkbox and click OK
l) Next, in order to save the changes for my message, I will use the Actions menu and click on Save Changes On Message option
m) You will see that the value changed to False for the PR_ATTACHMENT_HIDDEN
n) Let’s check now in Outlook if we can see correctly the attachment when opening the message. The attachment appears correctly now.
Microsoft Exchange Server MAPI Editor
Pretty good article. Thanks for writing it! If you have any bug reports or feature requests, I'd be interested in hearing them.