How to use MFCMAPI to create a MAPI profile to connect to Exchange 2013

Well it’s finally released.  The long awaited MAPI/CDO download that includes the documentation which outlines how to connect to Exchange 2013.  As a supplement to that I have created this blog post to walk you through the steps of creating a profile using MFCMAPI to troubleshoot issues.  The intention of this article was to provide a quick and simple guide.  It outlines the default case, but it is out of the scope of this article to provide an in depth discussion of every scenario.  I have provided these steps to many customers and for the most part they ring true.

First things first, please download the latest version of MAPI/CDO found here: It is assumed that you are using at least version 6.5.8309.  However, these steps do not work with any version of Outlook.  This profile will also not work against a legacy version of Exchange even if the target server is Outlook Anywhere enabled.  Lastly, make sure you are using the latest version of MFCMAPI.

  1. Make sure that you have Exchange 2013 properly configured.  The best way to do this is confirm that Outlook can connect successfully.
  2. Open up MFCMAPI, go to Profile > Show Profiles
  3. Click Actions > Create Profile Create Profile Selection
  4. Give the new profile a name and click OK. Give the Profile a name
  5. Select the new profile
  6. Right-Click and choose Services > Add Service…Choose Add Service
  7. Enter MSEMS for the service name
  8. Uncheck the box which says ‘Display Service UI’AddMSEMS
  9. Click OK
  10. Double-click the newly created profile
  11. Double-click the MSEMS service
  12. Find the Global Profile Section.  It’s the provider with the PROVIDER_UID that is 13DBB0C8AA05101A9BB000AA002FC45A and single click it.Select the Exchange User Guid
  13. Go to Property > Additional PropertiesSelect Additional Properties
  15. Click OK
  16. Configure each property using the guidance below.
    Value: True
    Value: mailbox alias
    The alias for the target mailbox. For example, Administrator
    Value: The personalized server id
    This is the value retrieved from Autodiscover. It will be in the format guid@domain. For example,
    Value: FQDN of your Client Access Server.  You don’t need to specify http:// or https://.  For example,
    6.5.8309 requires the use of the ANSI version of this property
    Value: PRXF_ENABLED (0x1)
    Instructs the MAPI subsystem to use RPC over HTTP to connect to the server
    Describes the authentication scheme to use for RPC over HTTP
    Value: RPC_C_AUTHN_WINNT (0xA)
    Describes the authentication scheme to use for RPC
    Tells the subsystem to use a separate connection and still connect if no public folders are in the organization

    Configuration Complete

  17. Select Session > Logon and display store, and select the profile is not already selected.

The personalized server id is the server name returned from Autodiscover.  You can find this in a variety of ways. If you are using the SOAP based Autodiscover the property you are looking for is InternalRpcClientServer.  If you are using the Plain Old XML (POX) based Autodiscover the property you are looking for is of type EXHTTP in the protocol node.  The node name is Server.  You can use Outlook to make an Autodiscover request on your behalf by right clicking the Outlook icon in the System Tray while holding down the CTRL button and choosing ‘Test E-Mail Autoconfiguration’.

For PR_PROFILE_RPC_PROXY_FLAGS your environment may require the flag PRXF_SSL (0x2) to tell MAPI to use SSL.  If your certificate is not trusted then add the flag PRXF_SEC_WARNING (0x10).

I will be writing a subsequent article which describes how to use the RPCHttpProxyMap registry key. [Edit: 5/27/2013: That post is completed.]

The version of MAPI/CDO was incorrectly stated on the download page as 8.3.8309 for 6.5.8309.

If you have questions, just add a comment and I will approve them and respond as time permits

[Edit: 7/8/2014] I added screenshots and I wanted to point out that these steps may not work out in all environments.  In order to use these steps your environment must support NTLM as the authentication protocol for Outlook Anywhere.  For environments that support Basic you will need to alter these settings.  The best way to know what your environment requires is to review the Autodiscover response for the target mailbox.  You can use the steps documented in this Technet Article in the section entitled Step 3: Check Autodiscover and Exchange Web Services to perform an Autodiscover and see the response using Outlook 2007 and above.

[Edit: 10/14/2015] Updated the link to the latest version of MAPI \ CDO

Comments (75)

  1. sky says:

    that's great, thanks!

  2. Abhi says:

    When I tried using MFCMAPI and resolving the name, I get prompted for credentials and it does not accept any  credentials. I have not configured any of the above keys yet. Using NTLM for Outlook Anywhere. Is any specific reg key from the above help?

  3. Hi Abhi,

    Are you saying that you haven't followed the article above?  Are you using Outlook's MAPI or Exchange's MAPI with MFCMAPI? In order words do you have Outlook installed on this machine or the MAPI/CDO download?

  4. Abhi says:

    Hi Dave,

    I am using Exchange's MAPI/CDO. It is fine now after configuring the above properties.


  5. During step 11, I end up with Err:0x8004010F=MAPI_E_NOT_FOUND for the display name associated with 13DBB0C8AA05101A9BB000AA002FC45A.  I'm using the MAPI/CDO install, and I'm running MFCMAPI from the CAS.  I haven't seen any references to this anywhere, so I'm hoping there are some ideas to work through this, most likely, configuration issue.


  6. Hi Carey,

    I am not sure if that is a problem per se. Are you experiencing other problems?


  7. Hi Dave,

    I try to move onto the next step (adding the additional properties), and I add PR_CONVERSION_PROHIBITED, but it shows up in the Property Pane with a value of Err:0x8004010F=MAPI_E_NOT_FOUND as well.  It doesn't look like I can set these values this way.


  8. Hi dave,

    Just a note: at step 15, PR_PROFILE_PROXY_SERVER is incorrect. It is PR_PROFILE_RPC_PROXY_SERVER instead, as written at step 13.


  9. I corrected it.  Thanks Eric!

  10. Dave,

    Any further thoughts on the MAPI_E_NOT_FOUND problem I'm having?

    Thanks in advance!

  11. Hi Carey,

    It's really hard to know what is wrong.  Let's do this, click the 'Email Blog Author' link and we can continue this conversation over email.  Once / If we figure it out I can report back here.


  12. Enrique says:

    Hi Dave,

    Did you ever figure out that issue with Carey?  I have a really old piece of software that I'm having a lot of trouble working with.  It needs to grab people's contacts and sync them up to itself from Exchange 2007 and Exchange 2013.

    Also, for PR_PROFILE_CONNECT_FLAGS, how do I get both of those values to show?  It seems the interface will only recognize the first 0x8000 value and ignore 0x4 if I pipe it in after that and vice-versa.

  13. Yes.  It was not an issue related to the steps in this blog. I will let him respond if he wants to share the details. If you want to use the flags in PR_PROFILE_CONNECT_FLAGS, just set the value equal to 0x8004.  The pipe character is the OR operator in C/C++.

  14. Ben says:

    I'm sorry but I really don't understand how to add those values.  Like the previous comment from Carey, I have 13DBB0C8AA05101A9BB000AA002FC45A displayed against the PR_PROVIDER in the PROVIDER view.  Is to be expected?

    Really though, I'm not sure how to add those values.  I seem to have lots of boxes asking for values butit's not clear where I specify the PR_CONVERSION_PROHIBITED value, nor how to set it to true?

  15. Hi Ben, having the PR_DISPLAY_NAME as MAPI_E_NOT_FOUND is not necessarily a problem.

    You must first add all the properties and then go back and edit the property values individually.  That is why the steps are broken into two parts: Add the properties (Step 13), then edit the values (Step 15).

  16. Yura Akatov says:


  17. Bill Smith says:

    I added the props from line item 13.  How do you edit the value?

  18. Alex says:

    Hi Dave,

    thank you for the article.

    When I am going to MDB ->  open other mailbox –> get mailbox table

    and entering GUID of RDB that is mounted, I am getting MAPI_E_NETWORK_ERROR=0x80040115 saying user is not from the current domain…..

    and MAPI_E_NO_ACCESS,saying user has not enough permissions  .

    Any ideas?

    I know, that MAPI is working, because I had a chance to use 3rd party application that uses mapi and it worked.


  19. That particular feature requires that you are testing from a machine that is domain joined and logged into that machine as a domain user.  Supplying the credentials when prompted is not enough. Also, make sure you are entering the machine name for the mailbox server and not the CAS Front end.  It requires a mailbox server.

  20. Alex says:

    Thanks Dave,

    well, the machine is only one Exchange server and it is also a CAS server.

    I logged in as domain user that has admin rights in AD and Exchange.


  21. pranov2001 says:

    Hi Dave,

    My intention is to create a MAPI profile for the exchange super user account, that has access to all the mailbox/message store and later get to the message store table and open individual message store using Mailbox Alias Name. So I thought of using the message store Entry ID's Mailbox DN that carries the Mailbox Alias Name with it.

    Thought process: I wanted to avoid creating profiles dynamically for accessing individual mailbox and instead use the exchange super user profile (Single MAPI profile) to access individual mailbox.

    Please let me know if the above approach is plausible.

    How to identify the owner of the message store without opening the message store?

    Iam trying to identify the owner (Exchange Account) of the message store using the message store entry ID.

    When I use the MFCMAPI (with Outlook 2013) to verify the entry ID (PR_ENTRYID) of the 2013 Mailbox/message store, the mailbox DN portion of entry ID reads the mailbox display name followed by some GUID. Also the Server Short Name displays the SMTP Address of the Mailbox store.

    /o=XYZ/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=03fffffff40c4b1fa53b10ecf323f359-Mohan Kumar

    We witness the Mailbox Alias Name instead of the Mailbox display name in the mailbox DN, when we are working with exchange 2007 mailbox store.


  22. @pravnov2001 – Yes you can create a single MAPI profile that can connect to all mailboxes provided it has the correct permissions.

  23. Lars Iversen says:

    Is it just me, or is it difficult to figure out it in which header file these properties are defined? For example, where is PR_PROFILE_RPC_PROXY_SERVER defined? I cannot find that and other properties in Outlook 2010: MAPI Header Files (…/details.aspx). Is there a different download available?

  24. @Lars – Outlook's MAPI has similar properties that even may use the same ids however the #defines are specific to Exchange's MAPI.  For a list of these #defines see the accompanying document for the MAPI/CDO download May 2013 update

  25. Robert says:

    You are the BEST! I have been looking for this for days! HERO!

  26. Dan says:

    Hi Dave, I have used your article to properly connect to Exchange Server 2013 on many customers; however, I have this one customer that keeps failing to connect to the Mapi profile.

    Using MFCMAPI, I tried both defining and configuring all properties specified in this article, as well as using the RPCHTTPProxyMap registry values, with no success.

    And I have retrieved the proper information from Outlook Test Email Autoconfiguration, according to the documentation provided with MAPICDO.

    Whenever I try to open the profile, I get the Network credentials dialog which does not accept correct credentials.

    I have seen this once in the past, and at that time it was related to the Authentication set on the RPC virtual directory in IIS, but this does not seem to be the case now.

    How should I investigate further and find out what is wrong?

    Thank you,


  27. @Dan – In most cases I have seen being repeatedly prompted for credentials is usually caused by a mismatch of the authentication schemes between the client and the RPC vdir as you indicate above.  I have also seen cases where SSL is required and the client is not using it.  The only other thing is having the LMCompatabilityLevel set to >= 2.  However, that has only happened once.  If you have tried all those you can create a support incident and someone from MS should be able to assist you.

  28. Chris says:

    I followed this guide to the letter but when i try and connect i still get The name could not be resolved.  Network problems are preventing connection to the Microsoft Exchange Server.

    I have confirmed the mailbox is active, has mail and get send/receive mail.  This is driving me nuts as EMC reckon this MAPI error is what's causing our Avamar restores to fail as it can't connect properly.  Any thoughts?

  29. Jaquinei says:

    Hi Dave, I am following your instructions to connect to Exchange 2013. MFCMAPI shows in the list, the Mailbox of the user and Public folders,  but when click on the Mailbox or attempt to open the default message store, an error appears MAPI_E_FAILONPROVIDER==0x8004011D. MainDlg.cpp Line 437.

    I am using ExchangeMAPICDO  6.5.8353 and MFCMAPI on a machine with Windows 2008 R2 Enterprise.

    Do you have any suggestion what I can be wrong?

    Thank you in advance,


    [Editor's Note] This comment has been adapted from the original.  The intended meaning of the comment has not been modified.

  30. Jaquinei says:

    Some additional details. I am using ExchangeMAPICDO  6.5.8353 and MFCMAPI on a machine with Windows 2008 R2 Enterprise.

  31. Hi Chris and Jaquinei, Bear in mind that following the steps may not lead to a successfully connection.  This is because it will only work if your Outlook Anywhere endpoint accepts NTLM for the inner and outer channel.  That may not be the case in all environments.  To figure out what authentication is needed you should use the Autodiscover response to tailor the profile you create.  If you can't figure it out, you can open a case with Microsoft Support and we can assist you.

  32. Jaquinei says:

    Hi Dave,

    After spend some time, I could connect to Exchange 2013 using MFCMAPI.  To do that,  I had to add an additional setting to the property PR_PROFILE_RPC_PROXY_SERVER_FLAGS. I had to set  ROHFLAGS_SSL_ONLY. Once done that the connection was successful.

    But I still with a doubt I believe you can help me:  

    Is possible to connect to an Exchange 2010 server using MFCMAPI and then attempt to open a mailbox of an user that have his/her inbox on the Exchange 2013?  

    Using MFCMAPI I could only connect to an Exchange 2013 and then access users with inboxes on Exchange 2010.  

    Thank you once more,


  33. Glad to hear that you figured it out.  Did you see this article?…/omniprof.aspx

  34. Simon says:

    Hi Dave

    Thank you for sharing this deep dive into MAPI.

    I've followed you guide, but at step 13 I can't find any of the properties you mentioned.


    I only see properties as: PT_****** – none PR_***

    Any ideas why?

    All the best,


  35. Hi Simon,

    I am not sure the exact question you are asking.  Make sure you have the latest version of MFCMAPI and that you have followed Step 12.


  36. kumar nathan says:

    Hi Dave,

    Excellent article..! Thank you very much for sharing this. I understood the article clearly and created the MAPI profile successfully to connect exchange server 2013.

    But i have faced the following please clarify me.

    1. Sometimes without adding the properties described in the article, I able to create MAPI profile successfully to connect exchange server 2013. In such case if i add the additional properties as described in the article , it failed to connect with the error "MAPI_E_LOGON_FAILED".

    I am working on to programmatically creating the mapi profile to connect exchange server 2013. I need to know in what particular  case we need to add the properties.

    Appreciate your help on this.  If you need any additional information please let me know



  37. Hi Kumar,

    I don't really understand how this automatically works unless you have the RpcHttpProxyMap registry key set.  You will need to describe how you create the profile.  It may be better to just use the 'Email blog Author' link so we can discuss it over email.

  38. kumar nathan says:

    Ok Dave. i will send email you with the required details now.


  39. Semir says:

    Hi Dave,

    i am facing a problem when trying to connect to my exchange.

    Actually i am not sure what to type in for "PR_PROFILE_UNRESOLVED_SERVER".

    You say that i can use the id i get from Autodiscover, but i am not sure how to do that.

    I have tried by using the same server name i use in the network where the exchange is (the one that is in my outlook) but when trying to reach it from outside i get an error like "there are problems with the network connection. A connection with the exchange server can not be established".

    But when i set the property "PR_PROFILE_RPC_PROXY_SERVER_FLAGS" to 0 (not to connect over HTTP) it works fine, i am being asked for my credentials and when i type them in i can connect to the exchange with MFCMAPI.

    Hope you can help

    kind regards


  40. @Semir,

    If you are setting the PR_PROFILE_RPC_PROXY_SERVER_FLAGS to 0 and it works, then your server doesn't require RPC over HTTP.  Are you targeting an Exchange 2013 server? If you are targeting Exchange 2010 then this article doesn't apply. For Exchange 2010, you should see my other article…/how-to-configure-a-mapi-profile-to-connect-to-exchange-2010.aspx

    Hope that helps,


  41. Hi Dave says:

    nice to hear from you.

    Actually, a few minutes after i posted that post i realizied the number after "… Exchange " in the caption, and indeed, i was trying to connect to an Exchange 2010. Then i was looking for my post to appear (so i could correct it), but after it didnt do so for the next few hours i thougt that it might be dead (or closed) and i didnt care. But even better that it is not (and the fact that i was checking again shows that i had a little hope left 😉 ).

    But back to the facts. After i saw that i was connecting to my Exchange 2010, but the functionality i was looking for  is available just from Exchange 2013, i didnt hesitate and  rented an Exchange 2013 (so i got an hosted exchange account). After setting everything up, i didnt get the error message from above!

    But, now i am getting the message that i am providing wrong a username/password combination. After typing all possible combinationsi could think of, i started playing with the parameters and here is what i found out:

    – when i change the RPC Server i get an another error message (something like the profile cannot connect to the RPC Server) so i assume that my profile can find and even can connect to the RPC server

    – when i change the exchange server i get the same message, i mean i was typing some nonsense into the "exchange server name" field, but still getting the error message that i am providing wrong username/password combinations. So i think that i cannot reach the exchange server.

    I tried to setup this hosted exchange account in Outlook and all went fine. From there i also copied the Autodiscover exchange name (so it must be right), but still getting the error with the credentials.

    Maybe you have an idea what else i can try

    Thank you for you help.

    kind regards


  42. Hi Dave says:

    I thing i may have found the error.

    My user (the one i want to connect to) has the following address:

    Now, when i try to connect to the exchange server i am being asked to provide an username, domain and password. When i try to copy my domain "<REDACTED>" into the domain field, it gets cut to "<REDACTED>". It seems like this field only supports a length of 17 charecters, but my domain is 22 characters long.

    I didnt notice this before because i was using the domain of the (main)server, which is a lot shorter and it filled into the field, but when using my domain (from my exchange server) it gets cut. I tried it by running "Test Autodiscovery" from Outlook. There i am also being asked for an username, domain and password. The field there is long enough and i can provide it with my domain (then the autodiscovery also works fine )

    Is there any possibility to provide the domain within a MAPI Prop, so i can avoid typing it into this field which is obviously too short ?

    Kind Regards


  43. @Semir,

    If you are trying to connect to a hosted Exchange Server in Office 365 you should be using the article…/create-profile-connect-mfcmapi-to-office-365.aspx.  It also discusses the problem you are having with your domain name being truncated.

  44. Semir says:

    Hi Dave,

    thanks for the answer.

    When providing those values i dont get this window where i can provide username/password/domain anymore. But now i get some other message, something like "The connection cannot be established because one of the provided parameters is wrong". The only parameter where i am quite unsure is the password because of the encryption. I was using the following example to encrypt my password:…/dpapi.aspx

    I must admit that i am not quite sure how this should work. When encrypting the password i can choose between 2 keys – machine and user keys. Now i dont get how the exchange knows which key i have chosen and how the server is supposed to decrypt the password (or it doesnt matter which i choose) . And thats the reason i think the password isn't right.

    You said that you have built your own application for encrypting the password. Since i am not that into Windows encrypting i was wondering if you know any  site with instructions how to do that (the programming language doesnt matter)

    kind regards


  45. Semir says:

    And what i have also notiec from the above link (mfcmapi to office 365), there is no such property "PR_PROFILE_RPC_AUTH_PACKAGE", but i think this is the same as  "PR_PROFILE_AUTH_PACKAGE".

    Kind regards


  46. @Semir – the client (i.e. MAPICDO) does the decrypting of the data before it's sent to the server.  Therefore the server never sees the encrypted data.  There is a sample of how to use the CryptProtectData API in the MAPI Download Configuration guidance document that can be downloaded with the MAPI / CDO download.

    Also, I am not sure if you are using .NET, but in case you are, you should know that it is not supported or recommended to use Extended MAPI with .NET.  They have incompatible memory and threading models.

  47. @Semir – You are correct there is no such property PR_PROFILE_RPC_AUTH_PACKAGE. I have corrected the blog post.

  48. Hi Dave says:

    Do i need any special lib-s to compile this code (the piece for encypting the password, not the one where a MAPI Profile is being created) ?

    I have been trying to compile it with devc++, but keep getting the error "   [Linker error] …main.cpp:30: undefined reference to `__imp_CryptProtectData' "

    I have found the crypt32.dll (i needed this also in the encrypting example i posted which is built in C#), but there is no use of it since (it seems)i need the crypt32.lib (and this i cannot find in my system32 folder, or anywhere else in my windows folders).

  49. Semir says:

    Hi Dave,

    after more digging i now got it there that it can find the function (or at least it seems so). I found a crypt32.def file and generated a .lib out of it (with VS command line function "lib"). Now i can complie the program, but when starting it i get this error:

    "procedure entry point "CryptProtectData@28" cannot be found in the "crypt32.dll" DLL".

    From my  older projects i know that this error ocurrs when just some files from a project have been updated and others havent (so there is a missmatch in the version of the files).

    I have searched for new "crypt32.dll" on the internet, but it seems like i got the newest one  (maybe my .def file from which i generated my .lib is too old ?)

    And, one more thing, lets assume that i have chosen a domain which can be typed inside the "domain" field (when logging inside the MAPI Profile), would  it work without all this stuff ?

    Kind Regards


  50. Hi Semir,

    The question is outside the scope of this article. If you need more guidance than what's provided I suggest you open a support case with Microsoft or post your question on the Exchange Developer support forum.…/home


    [Edit 7/16: This conversation was continued here:

  51. Ankush says:

    Hi Dave,

    I have used your article to properly connect to Exchange Server 2013 using MFCMapi on many site, however I have one site that keeps failing to connect to the MFCMapi. I get the Network credentials dialog which does not accept correct credentials. The client machine where MFCMapi is run is Windows 2012 server. The exchange setup is distributed and multiple exchanges are present.

    As per one of your answer to similar query I tried setting the registry value for LMCompatibitlitylevel to 3 but in this server this value does not exists.

    Creating a new registry value will have any effect?

    Any other configuration change I can do to set up MFCMapi with exchange 2013.



  52. I wouldn't create the registry key if it's not already there.  If you are experiencing a security prompt, the other reason could be that the authentication protocol you have specified in the profile doesn't match what is set for the mailbox.  Make sure you are using the Autodiscover response for the target mailbox to learn in what ways the profile should be configured.  If the target proxy server requires Basic Authentication you will need to specify the username and password.  However, the password cannot be manually entered into MFCMAPI.  It must be set by a program because you need to encrypt the password first using a certain Crypto API.

  53. Ankush says:

    Hi Dave,

    I checked up the Autodiscover response for the site where profile is not working and I saw that one difference from the Autodiscoverer response for the site where profile is working fine.

        <SSL>On</SSL> is ON where profile is not working. It is Off where the profile is working with MfcMapi.

    How can we turn off the this SSL?



  54. Check out Set-OutlookAnywhere and InternalRequieSsl and ExternalRequireSsl.…/bb123545(v=exchg.150).aspx  Alternatively, you can set the PR_PROFILE_RPC_PROXY_SERVER_FLAGS to use SSL (0x2)

  55. Varun says:

    I am getting this error while browsing the profile

    Error Code: -2147221220


    Value: The personalized server id

    This is the value retrieved from Autodiscover. It will be in the format guid@domain. For example,

    AS per the article PR_profile_unresolved_server

    We need to specify guid@domain value.

    Its for the User mailbox or Server.

    For User I can get this guid after running this command

    Get-Mailbox Varun | fl name, exchangeGUID



    Please help on below issue.

  56. Varun says:

    I am using single exchange  2013 sp1 with all roles.

    When I am trying to configure mapi profile it is not accepting the exchange server name.

    When I have given the AD FQDN, then it resolved the exchange server name.

    This is normal behavior or something wrong.

  57. Varun – Based on your two posts it appears that you are not configuring the profile correctly.  The first error you receive is MAPI_E_UNCONFIGURED.  This error would be consistent with that theory.  I would ensure that you are following my steps in this article correctly.  Entering the FQDN of the Global Catalog sorta works but it is not the recommended way of creating a profile.

  58. herb says:


    setup a service account to manage MAPI Advice() on an Exchange 2013. using MFCMAPI our profile gets MAPI_FAILONEPROVIDER. so we are failing to login. what Exchange 2013 logs are used for a MFCMAPI login?

  59. hauld says:


    working with Exchange 2013. we have a service account and can't login to the MAPI. we are using MFCMAPI to test account we are getting E_FAILNOONEPROVIDER. what Exchange logs can we use to trouble shoot MAPI issues such as this?

  60. hauld says:


    working with Exchange 2013. we have a service account to manage MAPI Advice() we are having issue where we can't log in. we are using MFCMAPI to try and log in with our service MAPI account. however we are getting

    MAPI_E_FAILONEPROVIDER. what Exchange 2013 logs can we use to troubleshoot?

  61. moes says:

    Is there also another way to create this profile programatically using mapi? i don;t want my users to have the profile wizard in front of them.

  62. Hi Moes,

    Yes, you can do this programmatically using MAPI.  The MAPI CDO download includes a word document which has sample code.…/details.aspx

  63. Brian Nytch says:


    Can you please be more specific on how to do step 16?  I cannot figure out how to change the values on each of the properties.



  64. Once you complete Step 15 by clicking ok, you can configure each property by double-clicking the property in the lower pane of MFCMAPI. This will launch the Property Editor dialog and you can edit them from there. Clicking ok after editing it will save the value.

  65. hauld says:


    is there away to tell MAPI to bypass, ignore or not attempt to access public folders?

    we have a situation where the public folder server on 2013 is not stable and is causing us havoc when accessing a user's mailbox. even with "ignore no pf" we fail. as I see it "ignore no pf" would not help us here because there are PF on the system.

  66. "Ignore No PF" only tells Exchange's MAPI to ignore the fact that a Public Folder server doesn't exist in a organization.  Previously this was required.  If you don't want to use the PF Store, don't logon to it. =)

  67. hauld says:

    can't seem to stop it.

  68. Are you sure that your code is not looping through the message store table and logging on to each one?

  69. hauld says:

    I will have to ask. thanks Dave.

  70. hauld says:

    code was reviewed and the RCA reviewed. does not appear to be our code. it seems that PF are called when we logon to the user's mailbox:Connect, OwnerLogon, Connect, PublicLogon, Disconnect, OwnerLogoff, Disconnect.

    before the PF where moved to the Exchange 2013 environment we did not see the PublicLogon.

    our application traces does not record and open PF call or result.

  71. Can you reproduce this behavior with MFCMAPI by simply logging on to the private mailbox store alone? If not, then your code must be doing it somehow. =)  This maybe a feature of 2013 Public Folders but this would be the first I have heard of it.

  72. Peter says:

    Hi Dave. Firstly: Thanks for creating such a great resource. We wouldn't have had nay hope of resolving our issues without your blog and MFCMAPI.  However can you please update the link this page to refer to the latest version of MAPICDO. Your link still points to the May 2013 version. And Google refers you there as well.

  73. Hi Peter,

    Thanks for letting me know. I have updated the post to use an alias that points to the latest version.


  74. It’s hard to find well-informed people on this topic, however, you sound like you
    know what you’re talking about! Thanks