Compartilhar via


This Just In: MAPI and Windows Server 2008 Now Get Along

The MAPI/CDO download package now works on Windows Server 2008 and Vista. The main blocker to getting this to work was the fact that in Windows Server 2008 and Vista, mapi32.dll was marked as a system file. Any attempt to replace it would be blocked or undone. Exchange's MAPI has always replaced mapi32.dll with its own version, so it couldn't work on those operating systems.

The fix is modify Exchange's MAPI to take advantage of the MAPI Stub Library mechanism. We moved Exchange's MAPI binaries out of system32/syswow64 and placed them under C:Program FilesExchangeMAPI ("Program Files (x86)" on a 64 bit machine). We also renamed Exchange's mapi32.dll binary. It's now called ExMAPI32.dll.

Some notes:

  • If you've installed an earlier version of this download on a machine and wish to upgrade, you must uninstall the earlier version first. It will not upgrade in place, and may even claim to have successfully installed.
  • Mapi32.dll in the system directory should be version 1.0.xxxx. If it's 6.5.xxxx, then the stub is not in place. Use FixMAPI.exe to correct this before installing the updated MAPI download.
  • The version number of the Windows Server 2008/Vista compatible download is 06.05.8022.0.
  • MAPI and CDO are still 32 bit only - it will install and work on a 64 bit machine, but only when used from a 32 bit program.
  • MAPISVC.inf in the system directory will be updated with Exchange's providers, but the date may not be changed. I just noticed this when testing the installer on a machine here.
  • The installer adds the MAPI install directory to the PATH statement. This MUST NOT be removed. It is required to allow DLL dependencies to work correctly.
  • Session 0 Isolation causes problems with our fix to the deleted profile issue. With that fix in place, a normal user (who lacks SeCreateGlobalPrivilege) wouldn't be able to use MAPI at all. So we modified the fix to attempt the global namespace first (which will fail for a normal user), then fall back to a local namespace. This means it is possible for a normal user to log on to a server twice with Terminal Services and delete a profile from one session that is in use under another session. To help identify this scenario, there's a new error code which will be seen by MAPI applications if this happens: MAPI_E_PROFILE_DELETED (0x80040204).
  • The download enters Extended Support in April 2009. That doesn't mean the download will be removed then, but don't expect updates to it.

Update: Looks like the Ehlo blog picked this up. Welcome Ehlo readers! I was involved in getting this update done, so lemme know if you have any questions.

Comments

  • Anonymous
    June 03, 2008
    Stephen, Any time period  for 64 bit MAPI release  ?? Regards Sridhar

  • Anonymous
    June 03, 2008
    There have been no announcements regarding a 64 bit MAPI.

  • Anonymous
    June 03, 2008
    Has anything else changed in this update or is it just introducing Windows Server 2008/Vista support?

  • Anonymous
    June 03, 2008
    In addition to the session 0 isolation issue, we also fixed an unreported crash scenario. The move from system32 to program files is a fairly large and potentially destabilizing move though. You should definitely test your applications with this update.

  • Anonymous
    June 03, 2008
    Well, that didn't take long. We just released of the latest MAPI download this weekend and yesterday

  • Anonymous
    June 11, 2008
    It appears that one of the new dll's is changing the current working directory of the loading process to "C:Program FilesExchangeMAPI" and breaking some applications. Also, adding this directory to the path will not work in all/most cases since windowssystem32 precedes it.  Uninstalling the previous version (7974) did not remove the dll's from the windowssystem32 directory... perhaps that is why the current working directory is changed?

  • Anonymous
    June 11, 2008
    I didn't think we were changing the working directory, but I'll check on that. On the uninstall, if an application was using the DLLs then they'd have to be scheduled for deletion on reboot - perhaps that's why the uninstall failed?

  • Anonymous
    June 11, 2008
    I just did a quick test program and its MAPIInitialize() that's changing the directory.

  • Anonymous
    June 20, 2008
    is there a new version of MERGEINI that would work with WS 08? http://support.microsoft.com/kb/294470

  • Anonymous
    June 20, 2008
    Wow - haven't seen that tool in ages. All it does is simple text manipulation. In fact, since mapisvc.inf is nothing more than a .ini file, the Windows INI functions work (http://msdn.microsoft.com/en-us/library/ms725501(VS.85).aspx). See HrSetProfileParameters in the MFCMAPI code.

  • Anonymous
    June 30, 2008
    I just installed Backup Exec 12 on my 2008 server running Exchange 2007.  I have been bouncing back and forth between Microsoft and Symantec trying to get v12 to restore mail boxes.  Symantec is blaming MAPI and Microsoft insists MAPI is configured properly.  Based on your notes everything appears correct, but Symantec believes that having MAPI32.DLL and MAPISTUB.DLL (both v1.0.2536) in the SysWOW64 folder is an issue.  I am stuck in the middle with no clue what to do.

  • Anonymous
    June 30, 2008
    Send me a mail with your case number and I can check on the status from our side.

  • Anonymous
    July 30, 2008
    Sorry for not posting this sooner - I just found out about it today. As I noted previously , we recently

  • Anonymous
    August 25, 2008
    We recently released a downloadable Exchange System Manager (ESM) for Exchange 2003 which can be installed

  • Anonymous
    October 23, 2008
    The ESM for Vista won't install on a W2K8/x64 machine.  It complains "You are not running Vista".  Will there be an update to correct his? Thanks.................Chuck

  • Anonymous
    October 23, 2008
    The ESM for Vista is just that - it's a version of ESM designed to install and run on Vista. For W2k8 you can just install the regular ESM from the Exchange CD.

  • Anonymous
    October 23, 2008
    ESM 2003 won't install on W2K8/x64. It complains: "Program is Blocked due to compatibility issues". I have not found any info on M/S site (yet) about this issue.

  • Anonymous
    October 24, 2008
    Exchange 2003 isn't compatible with Windows 2008. But Exchange 2007 is. See http://msexchangeteam.com/archive/2007/08/16/446709.aspx.

  • Anonymous
    October 24, 2008
    Any issue installing this on Exchange 2007 mailbox servers, to enable a vb script that was developed before MRM to be run on the local server?

  • Anonymous
    May 22, 2009
    I am trying to install "Microsoft Exchange Server MAPI Client and Collaboration Data Objects 1.2.1" (http://www.microsoft.com/downloads/details.aspx?familyid=E17E7F31-079A-43A9-BFF2-0A110307611E&displaylang=en) on 2008 SBS, and getting the error: "Collaboration Data Objects 1.2.1 cannot be installed unless Microsoft Office Outlook 2007 is also installed". The reason I ask is because my Symantec Backup Jobs are failing with: "e0001207 - To support individual mailbox message and folder restores from Information Store backups, you must download and install the Microsoft Exchange Server MAPI Client and Collaboration Data Objects package version 06.05.7888 or later on the Exchange 2007 server ..." Does anyone know of a way to install MAPI/CDO without installing Outlook 2007?

  • Anonymous
    May 22, 2009
    Joe - what you tried to install was ExchangeCdo.EXE and did not come from that link. You tried to install the CDO only package, which requires Outlook 2007. Redownload ExchangeMapiCdo.EXE and try it again.

  • Anonymous
    August 31, 2009
    installed onto windows 2003 standard 64bit. the mapi extensions installed just fine but it did not register cdo. manually registering c:"Program Files (x86)ExchangeMapi"cdo.dll fixed that.

  • Anonymous
    September 01, 2009
    RE Not registering CDO: I've not run across that in my testing.

  • Anonymous
    October 14, 2009
    The comment has been removed

  • Anonymous
    October 14, 2009
    The comment has been removed

  • Anonymous
    January 26, 2010
    I had an issue with Symantec backup for single mailbox recovery, the error saying need to install CDO1.2.1 on exchange server 2007. After installing CDO1.2.1 on exchange server i could able to take backup, but the problem is i could not able to configure MAPI for new users. Is this issue because of CDO1.2.1 on Exchange 2007 or something else making this problem.

  • Anonymous
    January 26, 2010
    What do you mean by "configure MAPI for new users"? It's not clear what your issue is.

  • Anonymous
    January 27, 2010
    Hi stephen Am having Exchange 2008 x64 with Exchange 2007 sp1 running on it. for backup am using Syamntec backup exec 12.8 on a DELL Tape drive. Wen i try to take ordinary Exchange backup its works good, but wen i go for individual mailbox backup by check Granular restore technology there was error which shows to install Microsoft Mapi and CDO 1.2.1. after installing it too i faced the same problem with individual mailbox backup. I went through all the requisites of syamntec regarding this issue and i met it and still problem exists. What are the congiguration still i need to do on the Exchange side. I faced problems in configuring MAPI for new users. so i again uninstalled ExchangeMapicdo1.2.1 from Mailbox server. Kindly look into this issue. Suggest me the solution What should i do to take individual mailbox backup. is this problem related to Microsoft or Symantec?

  • Anonymous
    January 27, 2010
    If no one will tell me what they mean by "configuring MAPI for new users", I cannot help. I suggest contacting Symantec if you're having problems with their backup solution.

  • Anonymous
    January 27, 2010
    Hi stephen configuring mapi for new users in the sense Configuring outlook 2007 for new users.

  • Anonymous
    January 27, 2010
    Outlook won't run? What does Outlook have to do with Symantec's backup solution?

  • Anonymous
    January 27, 2010
    I am having problems with Symantec seeing the Exchange 2007 information store on a Server 2003 64 bit server.  After talking with Symantec, they are stating that mapi is not configured correctly.  If I go to system information, software environment and loaded modules, mapi32 module is not loading.  I have loaded Microsoft Mapi and CDO 1.2.1.  Any ideas?

  • Anonymous
    January 28, 2010
    Go back to Symantec and ask them to resolve the issue.

  • Anonymous
    January 28, 2010
    They say it's not their problem since mapi32 module is not loading.  They state it's a Windows mapi issue.

  • Anonymous
    January 28, 2010
    And telling their customers to go away and figure it out on their own is wrong. If Symantec needs help getting their application to work with MAPI, then Symantec needs to open a case with us.

  • Anonymous
    January 28, 2010
    I'm just wondering why the mapi module will not load.  I have another server with the same setup and the module is loading fine.

  • Anonymous
    January 28, 2010
    Symantec will need to answer that - it's their process and I don't know anything about it. For instance, I can't tell you if they're even trying to load it - maybe they're not even trying. I'll tell you that mapi32 is the wrong module to look for - it's called exmapi32 in the Exchange MAPI download.

  • Anonymous
    January 28, 2010
    The exmapi maodule isn't loaded either.  Symantec states that it not their module but a windows module.  The module that loads correctly on another server is mapi32 1.0.2536.0 (srv03_sp1_rtm.050324-1447)  from that it looks like something that was loaded with SP1 and not by symantec.

  • Anonymous
    January 28, 2010
    Whoever you're talking to is clearly confused. You should ask to have your case escalated.

  • Anonymous
    January 28, 2010
    It already has been escalated.  They are stating this is a Microsoft issue and cannot go any further without Microsoft involvement.

  • Anonymous
    January 28, 2010
    Is there a way for me to test if mapi is functioning correctly on this server?

  • Anonymous
    October 11, 2010
    I have not seen postings here since Jan, so I hope this blog is still active. I am running Windows 2008 and I have installed CDO/Mapi 1.2.1 and it all went well. However, I am running Redemption and when I start a Mapi Session with Redemption, I get an error message stating that the sessions cannot be opened. I've got a couple of questions:    1- After installing the mapi libraries, do I need to create a profile of some sort in order to get Mapi working?    2- Is there any other setup that has to be done in order for the mapi interface to work? Thanx Thatch

  • Anonymous
    October 11, 2010
    Thatch - The 27 other posts I've put up this year so far don't count? You're asking a question about Redemption. You should ask the maker of Redemption about his product.

  • Anonymous
    November 08, 2010
    We have installed MAPI CDO 1.2.1 using administrator account, we then logon using Besadmin account to install BlackBerry Enterprise Server Express. We are having issue creating mapi profile with error: "An error occurred while initializing a MAPI session" . When i logon using administrator account, i am able to create mapi profile just fine. We then uninstall MAPI CDO 1.2.1, rename all the mapi32.dll file to mapi32.old and logon using besadmin account to re-install it. Installation completed, however mapi32.dll file did not get created even after we ran the fixmapi.exe. And we are still unable to create mapi profile. Then we logon using administrator account to re-install MAPI CDO 1.2.1, mapi32.dll get created. However we still have the same issue creating mapi profile using besadmin account. I also notice that MAPISVC.inf does not exist in system32 folder it older exist in syswow64 We checked the exchangemapi folder, all files are there including exmapi32.dll Windows SBS standard 2008 x64 BES 5.0.2 Express UAC Off Can anyone please advise what might be wrong?

  • Anonymous
    November 24, 2010
    Stephen, Thanks for taking the time to work on this and to post your findings.  I think I can say that Symantec Backup Exec needs to figure out a better way to connect to Exchange if they want to keep their customers.  We're looking for a suitable replacement due to issues just like this. Thanks again, Carl

  • Anonymous
    February 20, 2012
    Windows 7 x64 with Outlook 2007 installed; "Messaging API and Collaboration Data Objects 1.2.1 cannot be installed with Microsoft Outlook" Same if I try setting compatibility of the installer to anything other than Windows 7.

  • Anonymous
    February 20, 2012
    Steven - this is expected. The MAPICDO package cannot be installed on a machine with Outlook on it. If you wanted CDO there's a different installer for that which includes just CDO.

  • Anonymous
    October 10, 2012
    Just want to repeat Sridhar's question: is there (will there be) a 64 bit MAPICDO release, i.e. being able to talk MAPI to Exchange from a 64 bit program (without using a 64 bit version of Outlook)?

  • Anonymous
    October 10, 2012
    Lars - there are no plans for a 64 bit MAPICDO.

  • Anonymous
    April 02, 2014
    The comment has been removed

  • Anonymous
    April 02, 2014
    RAM - we didn't make any changes in an area that would explain that. Try uninstalling and reinstalling.

  • Anonymous
    April 03, 2014
    stephen-I am getting following error whie creating instance for MAPI.Sessionclass -- >Collaboration Data Objects TYPE:System.Runtime.InteropServices.COMException MSG: [Collaboration Data Objects - [MAPI_E_NOT_FOUND(8004010F)]] Whr as its working fine in windows 2003 machine and not working on win 20008

  • Anonymous
    April 03, 2014
    Stephan - if we create object  objSession = Server.CreateObject("MAPI.Session")  its throwing below error [Collaboration Data Objects - [MAPI_E_NOT_INITIALIZED(80040605)]] In the registry key file is thr

  • Anonymous
    April 07, 2014
    Hi Stephan, currently we are using ExchangeServer 2003 in seperate machine and win server 2003 and Cdo.1.0x in seperate machine for communication. As per Servers upgrade we need to change our win server 2003 to win 2008 R2 so we installed latest ExchangeMAPICDO.exe. we followed below steps for fresh win server 2008 machine

  1. Installed ExchangeMAPICdo.exe
  2. verified new files in  C:Program Files (x86)ExchangeMapi
  3. CDO Latest dll & EXMAPI32.dll version its displaying is 6.5.8353.0
  4. deployed our application by adding reference latest CDO.dll -in the bin folder its displaying Ineterop.MAPI.dll 5.while accessing MAPI.SessionClass instance its throwing NULL reference error. 6.so its displaying [Collaboration Data Objects - [MAPI_E_NOT_INITIALIZED(80040605)] error Pls let me know ur thoughts on this. Thanks Sush
  • Anonymous
    July 02, 2014
    Stephen, I'm trying to install Acronis Server Backup on a server running SBS 2008 and the Acronis installer wants me to upgrade from MAPI 6.x to 1.2.1. Well, I tried installing the MAPI software without first running the FixMAPI solution you mentioned (I just now came across this blog entry) and afterwards when trying to install Acronis again it is still showing version 6.x installed despite the new version installing without any errors (as you hinted to in this post). Now that I've read your blog post all of this is pretty much a given at this point but my question is the following: Does the FIXMAPI protocal still apply? I only ask because I clicked on the link only to find Microsoft doesn't recommend using that method any longer...? Thanks for your help!

  • Anonymous
    July 02, 2014
    Restarting the server worked. No need to use FixMAPI protocol.

  • Anonymous
    July 14, 2016
    hey i am stuck with the MAPI stuff. I am making default mail client. So when user uses "Send to" feature, file will be send. But I am facing issue with office 2007 applications only, else it is working amazing.In office 2007 applications, MAPILogOn function is called and MAPIInitialize(...) is called successfully, MaPILogOnEx(...) returns S_Ok and after MAPILogOn(...) executed, office apps crashes. I don't what is the issue and why app crashes.