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: https://aka.ms/mapicdo. 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.
- Make sure that you have Exchange 2013 properly configured. The best way to do this is confirm that Outlook can connect successfully.
- Open up MFCMAPI, go to Profile > Show Profiles
- Click Actions > Create Profile
- Give the new profile a name and click OK.
- Select the new profile
- Right-Click and choose Services > Add Service...
- Enter MSEMS for the service name
- Uncheck the box which says 'Display Service UI'
- Click OK
- Double-click the newly created profile
- Double-click the MSEMS service
- Find the Global Profile Section. It's the provider with the PROVIDER_UID that is 13DBB0C8AA05101A9BB000AA002FC45A and single click it.
- Go to Property > Additional Properties
- Click Add and add the following properties PR_CONVERSION_PROHIBITED, PR_PROFILE_UNRESOLVED_NAME, PR_PROFILE_UNRESOLVED_SERVER, PR_PROFILE_RPC_PROXY_SERVER, PR_PROFILE_RPC_PROXY_SERVER_FLAGS, PR_PROFILE_RPC_PROXY_SERVER_AUTH_PACKAGE, PR_PROFILE_AUTH_PACKAGE.
- Click OK
- Configure each property using the guidance below.
Property: PR_CONVERSION_PROHIBITED Value: True Property: PR_PROFILE_UNRESOLVED_NAME Value: mailbox alias The alias for the target mailbox. For example, Administrator Property: PR_PROFILE_UNRESOLVED_SERVER Value: The personalized server id This is the value retrieved from Autodiscover. It will be in the format guid@domain. For example, F5FA2827-5978-43cd-8FA8-E07BC3BB5591@contoso.com Property: PR_PROFILE_RPC_PROXY_SERVER Value: FQDN of your Client Access Server. You don't need to specify http:// or https://. For example, e2013cas.contoso.com 6.5.8309 requires the use of the ANSI version of this property Property: PR_PROFILE_RPC_PROXY_SERVER_FLAGS Value: PRXF_ENABLED (0x1) Instructs the MAPI subsystem to use RPC over HTTP to connect to the server Property: PR_PROFILE_RPC_PROXY_SERVER_AUTH_PACKAGE Value: RPC_C_HTTP_AUTHN_SCHEME_NTLM (0x2) Describes the authentication scheme to use for RPC over HTTP Property: PR_PROFILE_AUTH_PACKAGE Value: RPC_C_AUTHN_WINNT (0xA) Describes the authentication scheme to use for RPC Property: PR_PROFILE_CONNECT_FLAGS Value: CONNECT_USE_SEPARATE_CONNECTION (0x4) | CONNECT_IGNORE_NO_PF (0x8000) Tells the subsystem to use a separate connection and still connect if no public folders are in the organization
- 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