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 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
Comments
Anonymous
May 26, 2013
that's great, thanks!Anonymous
June 23, 2013
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?Anonymous
June 25, 2013
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?Anonymous
July 08, 2013
Hi Dave, I am using Exchange's MAPI/CDO. It is fine now after configuring the above properties. Thanks!Anonymous
July 08, 2013
Great!Anonymous
August 27, 2013
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. Thanks!Anonymous
August 28, 2013
Hi Carey, I am not sure if that is a problem per se. Are you experiencing other problems? DaveAnonymous
August 28, 2013
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. CareyAnonymous
September 04, 2013
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. EricAnonymous
September 04, 2013
I corrected it. Thanks Eric!Anonymous
September 23, 2013
Dave, Any further thoughts on the MAPI_E_NOT_FOUND problem I'm having? Thanks in advance!Anonymous
September 24, 2013
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. DaveAnonymous
October 25, 2013
The comment has been removedAnonymous
October 25, 2013
The comment has been removedAnonymous
November 12, 2013
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?Anonymous
November 12, 2013
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).Anonymous
November 17, 2013
Also it helps to set PR_PROFILE_CONFIG_FLAGS to CONFIG_SERVICE.Anonymous
December 06, 2013
The comment has been removedAnonymous
December 09, 2013
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. _AlexAnonymous
December 09, 2013
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.Anonymous
December 10, 2013
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. thxAnonymous
January 20, 2014
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. _PranavAnonymous
January 20, 2014
@pravnov2001 - Yes you can create a single MAPI profile that can connect to all mailboxes provided it has the correct permissions.Anonymous
January 21, 2014
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 (www.microsoft.com/.../details.aspx). Is there a different download available?Anonymous
January 22, 2014
@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 http://aka.ms/mapicdoAnonymous
January 22, 2014
You are the BEST! I have been looking for this for days! HERO!Anonymous
February 06, 2014
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, DanAnonymous
February 09, 2014
@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. http://aka.ms/LmCompat. If you have tried all those you can create a support incident and someone from MS should be able to assist you.Anonymous
March 13, 2014
The comment has been removedAnonymous
April 04, 2014
The comment has been removedAnonymous
April 04, 2014
Some additional details. I am using ExchangeMAPICDO 6.5.8353 and MFCMAPI 15.0.0.1041 on a machine with Windows 2008 R2 Enterprise.Anonymous
April 08, 2014
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.Anonymous
April 10, 2014
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, JaquineiAnonymous
April 10, 2014
Glad to hear that you figured it out. Did you see this article? blogs.msdn.com/.../omniprof.aspxAnonymous
June 02, 2014
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. "13.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." I only see properties as: PT_****** - none PR_*** Any ideas why? All the best, SimonAnonymous
June 10, 2014
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. DaveAnonymous
June 24, 2014
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.
- 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 Thanks, Kumar
Anonymous
June 25, 2014
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.Anonymous
June 25, 2014
Ok Dave. i will send email you with the required details now. KumarAnonymous
June 25, 2014
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 SemirAnonymous
June 27, 2014
@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 blogs.msdn.com/.../how-to-configure-a-mapi-profile-to-connect-to-exchange-2010.aspx Hope that helps, DaveAnonymous
July 03, 2014
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 semir
Anonymous
July 06, 2014
I thing i may have found the error. My user (the one i want to connect to) has the following address: admin@acp-hostedexchange.at. 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 SemirAnonymous
July 07, 2014
@Semir, If you are trying to connect to a hosted Exchange Server in Office 365 you should be using the article blogs.msdn.com/.../create-profile-connect-mfcmapi-to-office-365.aspx. It also discusses the problem you are having with your domain name being truncated.Anonymous
July 09, 2014
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: www.obviex.com/.../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 SemirAnonymous
July 09, 2014
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 SemirAnonymous
July 09, 2014
@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.Anonymous
July 09, 2014
@Semir - You are correct there is no such property PR_PROFILE_RPC_AUTH_PACKAGE. I have corrected the blog post.Anonymous
July 13, 2014
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).Anonymous
July 13, 2014
The comment has been removedAnonymous
July 13, 2014
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. social.msdn.microsoft.com/.../home Dave [Edit 7/16: This conversation was continued here: http://social.msdn.microsoft.com/Forums/exchange/en-US/9ce5871d-9c29-483b-804a-1f9add2faa8b/c-cryptprotectdata-exchange-mapi-profile-how-to-set-variables?forum=exchangesvrdevelopment]Anonymous
October 07, 2014
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. Regards, AnkushAnonymous
October 07, 2014
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.Anonymous
October 14, 2014
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? Regards, AnkushAnonymous
October 14, 2014
Check out Set-OutlookAnywhere and InternalRequieSsl and ExternalRequireSsl. technet.microsoft.com/.../bb123545(v=exchg.150).aspx Alternatively, you can set the PR_PROFILE_RPC_PROXY_SERVER_FLAGS to use SSL (0x2)Anonymous
November 20, 2014
I am getting this error while browsing the profile Error Code: -2147221220 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 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 Error MAPI_E_FailONEPROVIDER==0x8004011D Please help on below issue.Anonymous
November 20, 2014
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.Anonymous
November 20, 2014
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.Anonymous
June 17, 2015
Dave, 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?Anonymous
June 17, 2015
Dave, 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?Anonymous
June 17, 2015
Dave, 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?Anonymous
July 06, 2015
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.Anonymous
July 06, 2015
Hi Moes, Yes, you can do this programmatically using MAPI. The MAPI CDO download includes a word document which has sample code. www.microsoft.com/.../details.aspxAnonymous
August 19, 2015
Dave, 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. Thanks, BrianAnonymous
August 19, 2015
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.Anonymous
September 01, 2015
Dave, 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.Anonymous
September 01, 2015
"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. =)Anonymous
September 01, 2015
can't seem to stop it.Anonymous
September 01, 2015
Are you sure that your code is not looping through the message store table and logging on to each one?Anonymous
September 01, 2015
I will have to ask. thanks Dave.Anonymous
September 02, 2015
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.Anonymous
September 16, 2015
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.Anonymous
October 13, 2015
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.Anonymous
October 14, 2015
Hi Peter, Thanks for letting me know. I have updated the post to use an alias that points to the latest version. DaveAnonymous
March 07, 2016
It's hard to find well-informed people on this topic, however, you sound like you know what you're talking about! Thanks