Any Replacement for CDO and MAPI ?

  • Thread starter Thread starter Ladan
  • Start date Start date
L

Ladan

Hi,
I need to rewrite an application originally written for office 2003 (VBA).
It is an Access 2003 application that reads and parses email allerts from
outlook mailbox and puts the extracted info into Access database table. It
references CDO 1.2.1 .
As our company is going to use Exchange 2007, I need to rewrite this app, so
that it does not reference this library anymore and works fine with Exchange
server 2007. My company wants to get this application work without using CDO
and MAPI.

As CDO and MAPI is being eliminated eventualy, I need to know what is the
substitute for them.
I have done some googling and found Outlook Object Model and Exchange Web
Services. But I'm not quite sure which one to use, and if there is any better
option for me. Here is some lines of code that uses CDO:

Public objSession As MAPI.Session

Set objSession = CreateObject("MAPI.Session")

objSession.Logon ProfileInfo:=server & vbLf & mailBoxName ....

I need to be able to logon to a mailbox on server from any client machine.

I would appreciate if you can help me with this problem.
 
That all depends on where you want the code to run. If Outlook is installed
you can use the Outlook object model but you don't ever want to install
Outlook or Office on an Exchange server machine. Using Exchange Web services
is out of scope for an Outlook group, ask in an Exchange development group.

And CDO is still there and can still be used with Exchange 2007, and
Extended MAPI is in no way going away, it would destroy Exchange and
Outlook.
 
Thanks for your reply.
My code is in an access application, running on client machine with outlook
2007 installed. It is supposed to access a mailbox other than the user's
mailbox on Exchenge server (2003) , and process some email allerts. It is
currently using CDO.dll but out company do not want that.

So you mean if I use Extended MAPI library, I can perform a logon like what
I do in CDO (e.g objSession.Logon ProfileInfo:=server & vbLf & mailBoxName
.....)?

I would appreciate if you send me any sample code in this regard.

Thanks
Ladan
 
You can access other users mailboxes using Namespace.GetSharedDefaultFolder
in teh Outlook Object Model.
<plug> Reemption (url) below exposes RDOSession.GetSharedMailbox and
RDOSession.GetSharedDefaultFolder and works in any version of Outlook
</plug>

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
 
Thanks for your reply.

Using Namespace.GetSharedDefaultFolder in OOM , I can open a shared folder
like a shared calander, but I need to access other mailboxes and be prompted
for user and password.

Regarding redemption, will there be support for it in exchange 2007 and 2010?

Regards,
 
If you want to use Extended MAPI you will need to research the code you will
need, but be aware that Extended MAPI won't work in any managed code (only
C++ or Delphi) and has a long learning curve unless you already know how to
program Extended MAPI.

I personally would use Redemption, which I use all the time for things like
that (www.dimastr.com/redemption).
 
Why do you need to be prompted for the user name and password?
Redemption fully supports Exchange 2007 and it will support Exchange 2010.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
 
Back
Top