MAPI Now Likes Exchange 2010


We just announced a new release of the MAPI Download that’s pretty much mandatory if you want to work with Exchange 2010. You’ll also need to get and apply Rollup 1 (RU1) for Exchange 2010.

Details about the MAPI Download:

  • The first version of the MAPI download which is compatible with Exchange 2010 is 6.5.8147
  • If you already have a version of the MAPI Download installed, you must unininstall it before installing the new version. The installer does not upgrade, nor does it warn you if you try to install it without uninstalling the previous version.

The new MAPI Download fixes a number of problems MAPI had with Exchange 2010:

  • You no longer need to disable encryption to make a connection.
  • Notifications, which had not been working, now work.
  • We no longer crash during certain SetProps calls.
  • Access to the RSG (now called Recovery Database) now works again.
  • Admin privilege access to Public Folder stores (OPENSTORE_USE_ADMIN_PRIVILEGE) works again. This fix is actually in RU1.

If I identify other issues fixed by the updated MAPI download, I’ll add them in here.

Enjoy!

[Update: 12/14/09] Forgot to mention that you’ll still need these tweaks for your profile, but you don’t have to disable encryption anymore.
[Update: 12/21/09] Added information about admin access to PF.

Comments (53)

  1. Jacques Dagousset says:

    Is the Outlook Mapi layer also updated?

    If not how is it possible to use the corrected Mapi on a workstation where Outlook is intalled?

  2. Stephen Griffin says:

    It’s not possible. It never has been possible and never will be possible to install both the Exchange MAPI download and Outlook on the same machine. This update corrects problems the Exchange MAPI download had connecting to Exchange 2010. Outlook’s MAPI did not have these problems and did not need an update.

  3. Jacques Dagousset says:

    Outlook’s Mapi seems to have problem with the following apis: GetmailboxTable and GetPublicFoldersTable.

    They work with Exchange 4 5 5.5 2000 2003 2007 but not with 2010.

    The new MapiDownload solve the problem.

  4. Jacques Dagousset says:

    For the following resons I don’t understand why the Mapi download cannot be installed on a workstation where Outlook is already installed:

    – MAPI and CDO are now optional components when installing Outlook.

    – as I understand the Mapi32 Stub Library purpose is to let you install more than one version of Mapi on the same workstation

  5. Stephen Griffin says:

    This Exchange MAPI download can not and does not correct any problems in Outlook’s MAPI. If Outlook’s MAPI is having a problem with Exchange 2010, you should consider opening a case with a repro scenario so we can investigate it.

    MAPI is not an optional component of Outlook. The MAPI Stub library is irrelevent. We do NOT allow Exchange’s and Outlook’s MAPI to be installed on the same machine (it’s even blocked in the Exchange download’s installer). When people force them on the same box, the only benefit they get is a machine where MAPI applications crash more often. Don’t do it.

  6. Jacques Dagousset says:

    Thank you Scott.

    I was unclear the Mapi download of course doesn’t correct any problem with Outlook’s Mapi but it corrects a problem that existed on the previous version of the Mapi download with the GetMaillboxTable Api.

    My goal is not to use both stack at the same time but to solve a problem that still exists on the Outlook’s Mapi when the Getmailboxtable api is called.

    The problem can be reproduced by using MFCMapi as described here:

    http://blogs.msdn.com/stephen_griffin/archive/2009/11/17/november-2009-release-of-mfcmapi.aspx

    Thank you

  7. Stephen Griffin says:

    I’m not familiar with the problem. AFAIK, no customer has opened a case reporting it. You should consider doing so if it’s something you need fixed.

  8. markolj says:

    Hi,

    I am updating an application which is using MAPI and is working without problems for all previous versions of Exchange Server. However, I can not get it to work with Exchange 2010. The MFCMAPI is showing exactly the same problems. I have several questions:

    1. Previous exchangemapicdo download packages were installed in WindowsSYSWOW64 directory and the new one is installed in Program Files(x86)ExchangeMapi. Why is this?

    2. There is no MAPI32.dll any more among the files extracted from the package (before there was). Is it replaced with EXMAPI32.dll?

    3. Because of 1. and 2., I have copied all the files to SYSWOW64 and renamed exmapi32.dll to  mapi32.dll (the newest version 8147). Also installed the exchange rollup 1. Unfortunately I still have no success at getting it to work. MFCMAPI (as is also my application) is always failing on OpenDefaultMessageStore with MAPI_E_FAILONEPROVIDER error 0x4008011D.

    4. Also, where should all this be tried at? I am doing it on the server where the CAS is located. Another interesting thing is that I can not initialize MAPI until I specify the AD server as the exchange server instead of exchange server which is hosting CAS(only then the AD server gets resolved to CAS server)… this is done from MFCMAPI.

    Thx

  9. Stephen Griffin says:

    1,2 – That change was made over a year ago, you must not have tested since then: http://blogs.msdn.com/stephen_griffin/archive/2008/06/02/this-just-in-mapi-and-windows-server-2008-now-get-along.aspx

    3 – Very bad idea. Don’t do it.

    4 – You have to tweak your profile: http://blogs.msdn.com/stephen_griffin/archive/2009/09/02/exchange-2010-and-the-mapi-download.aspx

  10. Jacques Dagousset says:

    Thank you Stephen. I opened a support request regarding the problem.

  11. markolj says:

    You are correct, I have not been testing for more than a year since eveything was working for previous releases:) Thx for the explanation. I have tried everything on two new environemnts and there it is working. However on the first one I am still having the same problems, seems like a Administrator account permission problem to me?

    1. Let’s say if I wanted to access mailboxes and browse mailbox table using some other account (not Administrator). What kind of permissions and where should I assign to that user in order to be able to access mailboxes through that MAPI profile. I have tried doing this on the environments that are working, by assigning the same permissions that the Administrator has to a new account, but I get again the 80040111d error. If I new this, maybe I could check what is wrong with Administrator on the first environment.

    2. Another thing I would like to know is which server should be specified as exchange server when creating the profile? It seems that it always gets resolved to the CAS server for which that users mailbox database is registered to (RpsClientAccessServer). Is this true?

    3. Can DAG and active/passive copy replication be transparent for MAPI? Can we somehow get all mailboxes on a DAG listed when getting mailbox table. Because I always get ony the mailboxes on the specific server(even if I specify DAG server). I only get mailbox listed on the server where its particulare database is currently active and not on the others.

    Thx again

  12. Stephen,

    I downloaded the Outlook 2010 beta and tried to get the mailbox table (both with MFCMAPI and my own implementation) but I get the MAPI_E_CALL_FAILED. Since I can not install the CDOMAPI 1.2.1 on this machine (CDOMAPI-Outlook incompatibility) I have no way of getting the mailbox table from an Exchange 2010 server.

    I am able to get the mailbox table for all other versions of Exchange and I can get the mailbox table from Exchange 2010 if I use the CDOMAPI 1.2.1 on the machine.

    What is your recommendation on getting the mailbox table from a machine that does not have CDOMAPI 1.2.1 installed?

    Any help will be appreciated.

  13. Stephen Griffin says:

    Yuval – Exchange 2010 no longer supports the interface used by Outlook’s implementation of GetMailboxTable. The MAPI download uses a different implementation which is still supported. If you want to get this addressed, your best course of action is to open a case under a Premier contract and request a fix.

  14. richard says:

    Hi Stephen,

    I met a problem when I used MFCMAPI. I can not initialize MAPI if I use mailbox server or cas server as the server.

    I have to specify the AD server as the exchange server instead of exchange server. It always reports the error "the name could not be resolved. Network problems are preventing…".

    My environment:

    DC, mailbox and CAS server: windows 2008 R2 enterprise.

    Exchange server 2010: RTM+RU1.

    MAPI: the latest version 6.5.8147

    IPV6 was banned on all the servers.

    Is the problem caused by windows 2008 R2? I tested a similar environment on window 2008 SP2, it works.

    Any ideas?

    Thanks

  15. tgangl says:

    Hi Stephen,

    hi MAPI-developers,

    be very very careful with latest MAPICDO-version (6.5.8153.0 from 1/12/2010) for Exchange 2010.

    It is more than buggy and in one word: Showstopper

    Same code works perfect since years with previous MAPICDO-version under Exchange 2003 & 2007.

    Does anyone also made same experience?

    Be careful…

  16. Stephen Griffin says:

    Care to share any actual details?

  17. tgangl says:

    >Care to share any actual details?

    nop

    New MapiCdo does not work in UI, because it seems that it uses gethostbyname to resolve problem of connecting to other then Administrator mailbox (prev MapiCdo).

    And we always have randomly crash.

    Espesialy after ipconfig /flushdns command.

    we will also collect sources and publish them soon…

  18. Stephen Griffin says:

    Please open a case and submit the details there. We can’t fix problems we don’t know about.

  19. Thorsten says:

    Hi Stephen,

    we recognised random crashes with latest CDO/Mapi Package and latest MFCMapi, too. Our own application built on MAPI has problems when logging off, it is always a thread which has not been created by us and the crash is always in emsmdb32.dll or ntdll.dll. Former versions of the CDO/Mapi Package worked well with the same code against Exchange 2007. The new package has these problems against Exchange 2007 and 2010.

    Any Ideas?

  20. Stephen Griffin says:

    We need people to open cases on these crashes so we can debug them and work to fix them. Please open cases with support (http://support.microsoft.com).

  21. tgangl says:

    Hello Stephen,

    as you wished here are detailed descriptions of already discussed problem in your blog:

    Environment:

    ————

    MS-Windows: Microsoft Windows Server 2008 Enterprise Edition 64-bit Service Pack 2 (build 6002) (6.0.6002)

    MS-ExchangeServer: Microsoft Exchange Server 2010 (14.0.682.1) (Rollup 1)

    MAPICDO: Messaging API and Collaboration Data Objects 1.2.1 (6.5.8153.0) from 1/12/2010

    A

    ———

    New MAPICDO (6.5.8153.0) from 1/12/2010 for Exchange 2007 AND Exchange 2010 does not work properly at all within UI.

    There are randomly crashes.

    It seems that UI and MAPI compete for message queue.

    We found out that gethostbyname()-function used in MAPI-implementation and gethostbyname()-function has well

    known buggy issue which are described in

    http://blogs.msdn.com/ntdebugging/archive/2007/06/13/hung-window-no-source-no-problem-part-1.aspx

    On crash we have similar stack as in the above article.

    B

    ———

    Additionally previously we used MAPICDO (6.5.8131.0) on Exchange 2010 and found several bugs like:

    – OpenMsgStore failed when any MsgStore already opened and not released

    -> fixed by releasing MsgStore before opening new one,

    – OpenMsgStore/CreateStoreEntryID failed on opening mailboxes other then Administrator-account (MAPI_E_FAILONEPROVIDER)

    -> fixed by changing server name to FQDN server name (even in legacyExchangeDN)

    We had to implement several workarounds (mentioned above) but IMO this can’t be solution or?

    C

    ———

    Using MAPICDO (6.5.8131.0) we meet with event notifications –> they didn’t work at all!

    Then we switched to new version and event-notifications are ok.

    But new UI-problem appeared (as described above).

    And now we have "ShowStopper" because we cannot find any workaround for the problem!

    We wrote test-application (C++) with which you can reproduce the problem.

    On our side crash appears on expanding any store-item OTHER than Administrator in Stores/Folders tree control.

    Where to send/upload source?

    Final

    ———

    We hope you can fix these issues in MAPICDO because this is real showstopper for all MAPI-Exchange-developers and also

    all 3rd-party-tools based on MAPICDO because new MAPICDO also doesn’t work under Exchange 2007

    We also would be very glad if you could – after fixing these problems – give us new version to test and we will give you feedback

    Thanks in advance

  22. tgangl says:

    Stephen,

    BTW: we will also open case at http://support.microsoft.com

  23. tgangl says:

    Stephen,

    FYI: case is opened as:

    Showstopper on MAPICDO 6.5.8153.0 from 1/12/2010

    request-number:   SRZ100203000252

    and now we – and also other guys – are waiting… 🙂

    Thanks in advance

  24. Stephen Griffin says:

    tgangl – please contact me through my contact link. Thanks!

  25. tgangl says:

    Hello Stephen,

    what do you mean exactly with your last post?

  26. Stephen Griffin says:

    Please go to http://blogs.msdn.com/stephen_griffin/contact.aspx and send me a mail. Thanks!

  27. Stephen Griffin says:

    For those following along: The crash that tgangl is reporting is real. He shared his sample app with me and we were able to reproduce the problem and identify a fix. I’ll post with more details when we have an updated MAPICDO download that addresses this problem.

    The other issues were do not repro with the current MAPICDO download. This has been confirmed by tgangl.

  28. Nic Wise says:

    We are also having issues with this new version, but not with the old ones.

    Support ticket: SRQ100121600614

    Support can’t repro on their systems at the moment, and I can repro 100% on any system I try it on – local VM, client server, our servers. Go figure.

    This is the same one I emailed you about, around 3 weeks ago, I’ve just not read this post for a while, but I now see lots of others are having issues. I guess it’s not just us!

    We get a crash in the mapi spooler, mostly, somewhere in RPCRT4.dll.

    That support case should have crash dumps and a minimal C++ app to reproduce it. Drop me an email (nicw@fastchicken.co.nz) and I can give you a copy if you can’t get it via the MS route.

    Our issue is around opening the store, and opening the folders, getting a list of emails in a folder, then logging off. Bang. Crash.

    Cheers

    Nic

  29. Stephen Griffin says:

    Nic – I’m already aware of that case and am in the process of checking if it’s the same issue.

  30. Nic Wise says:

    Excellent – thanks Stephen (I wasn’t sure if you are "close" to that team or not)

    Cheers

  31. tgangl says:

    Hello Stephen,

    what about new MAPICDO-support/dlls?

    When official publish is estimated?

    Thomas

  32. Jacques Dagousset says:

    Just to update the status of my ticket with Microsoft regarding the GetmailboxTable and GetPublicFoldersTable Outlook MAPI apis not working with Exchange 2010. The answer I received from Microsoft is: yes it does break existing functionality but we decided not to fix the issue.

  33. Kyle says:

    This seems to work fine on a Server 2008 PC, but not from a Server 2008 R2, (I get an MAPI_E_NOT_FOUND when using MFCMAPI). Im guessing this is because the MAPI CDO does not yet support R2? Any ideas on when this will be supported?

  34. Stephen Griffin says:

    Kyle – I’m not aware of any R2 specific issues. You should open a case if you have issues to report so we can investigate them.

  35. Jay says:

    Any idea if QueryRow function is either not supported anymore or broken?

    I have code which has worked without issue in Exchange 2003/2007, but now is partially broken. I can open the mailbox, list the folders, but when I attempt to list the messages in the folder, I’m getting a NO_SUPPORT from QueryRow

  36. Stephen Griffin says:

    Haven’t seen anything remotely like that. QueryRows is the way to get rows from tables – if it was fundamentally broken I’d expect to have heard of it by now. I’d suggest opening a case.

  37. Paul says:

    Steve,

    We are raising a ticket about an Ex2010+MAPI issue but just in case you’ve seen this before… we are creating a profile on one machine, then connecting to a CAS server that doesn’t have the MB role. The logon succeeds but when we try to open the message store for the mailbox (which is hosted on a different server) we get a MAPI_E_FAILONEPROVIDER. We can reproduce this reliably with MFCMAPI (and we’ll detail this when we raise the ticket), but have you seen anything like this?

  38. Don says:

    Could you tell me how can I set field values with type of PT_Binary and mv_PT_binary?

  39. Steve (in indirectly to Paul)

    I also have a similar issue to paul whereby i get FailONEProvider on OpenMsgStore (also in MFCMAPI).

    Now, we have NOT yet installed RU1, FYI.

    What we have found is that we will get the FOP error in the following condition:  Currently logged on account does not have EXPLICIT permissions to the mailbox.  Inherited permissions, even if correct, do not seem to work.

    If we use add-mailboxpermission to set fullaccess EXPLICITLY on the account we want to manage, we are able to do so.

    We are, however, able to ‘jump’ (using CreateStoreEntryID) to another mailbox without issue.

    COuld it be that 2010 does not allow access to a mailbox anymore via inherited permissions?

    Paul, i’m curious to hear whether your issue is resolved using Add-MailboxPermission.

    Regards,

    Eriq

  40. Stephen Griffin says:

    Eric – RU1 is required.

  41. MAPI_E_NOT_FOUND when calling CreateMsgService?

    Is there some issue with the latest release of the mapi download?

    I’m on a Win7 x64 box (using 32bit mapi download) and whenever i do CreateMsgService it returns a not found code.

    I’ve made sure that entries are correct in mapisvc.inf and have also seen the file get loaded by way of ProcMon.

    any clues to this mystery?

    Thanks,

    Eriq

  42. mgeriesa says:

    Hello,

    We are using exchange 2010 verion.

    The Miscrosofts MAPI API like: HrOpenExchangePrivateStore,QueryInterface,HrGetServerDN,GetMailboxTable,HrQueryAllRows

    are used.

    Does these API supported in Exchange 2010?

    If there a MAPI download that I need to use to let thses APIs work?

    If not, does Miscrosoft intend to support it in the future,

    Regards,

    Manal

  43. Stephen Griffin says:

    Half of those are EDK functions, not MAPI. But assuming you’re linking to the EDK, I don’t see why they wouldn’t work. The better question to ask here is whether you’re having a problem with those functions. Are you?

  44. Andrew83 says:

    Hello Stephen,

    We get a crash into MAPIUninitialize function. This crash occurs on 2 servers only(Windows 2003 R2 Enterprise x64 Edition; Mapi/cdo 1.2.1 version; exchnage 2007). On other servers the same MAPI functionality works properly without any crashes. After crash dump files analyses we found this crash occurs somewhere in RPCRT4.dll. As far as I see you have already checked similar case for Nick Wise. Did you found the reason of this crash?

    Thank you,

    Andrew

  45. pcunite says:

    Now that Outlook 2010 supports multiple Exchange (MSEMS) service entries, how do we add them and change the PR_DISPLAY_NAME so that they appear different to the user?

  46. Alan says:

    Hi Stephen & All,

    I am using Exchange 2010 and having two RDB's in my server. I can able to browse one RDB through MFCMAPI but if i dismount that RDB and mount another one i m not able to browse that RDB. And i am getting the legacy error 0x8004011D error. Is it problem with MFCMAPI? or do i need any configuration changes?

    -Alan

  47. Stephen Griffin says:

    Alan – this is a known (server side) issue with multiple RDBs. I believe we are investigating a fix for this.

  48. Hari says:

    Hi Stephen,

    Do we have any KB Article which is mentioning about the Multiple RDB Issue. Please provide the link for the same.

    Thanks,

    Hari.

  49. Hari says:

    Hi All,

    I am having 10 Exchange 2010 Servers in my organization and in some exchange servers while i use MFCMAPI i am getting 0x8004011D error when querying "IExchangeManageStore5" interface and in some exchange servers i am getting 0x80040115 when calling function OpenMsgStore. But other Exchange 2010 Servers MFCMAPI is working fine and i can able to browse mailboxes.

    It would be very helpful if you provide some thoughts regarding this issues. One thing i observed is most of the problems are coming in DAG Machines. MFCMAPI is working fine in stand-alone machines.

    Thanks,

    Hari.

  50. Nate says:

    Stephen, would you be able to shed light on what the actual encryption algorithm is (other than the 0xa5 XOR).  Is it variable or some common algorithm (variation of 56/128 bit RC4 etc?)

    Thanks

  51. Vineel says:

    Hi, we are recently migrating to Ex-2010. We are having web application built to send mails. For this we are creating mails and send it first to out look mail box using SMTP. This is working perfect.After this next step is to pick up mail from inbox and kepp it another folder inside inbox and then process it by adding new sender, recipents and is also happening. But while we were sending we are getting exception as "ACCESS denied" actual error is: [Collaboration Data Objects – [E_ACCESSDENIED(80070005)]]. can you please help us.