How can my program scan all email messages?

  • Thread starter Chris Shearer Cooper
  • Start date


Chris Shearer Cooper

My (C++ MFC) program needs to be able to scan all email messages found in
Outlook and/or Outlook Express and provide the user with information about
them. I need to know, for each email message, basic information like
date/time, sender, text, subject, and then I need access to any attachments.
I will not be sending any messages, receiving any messages, scanning the
contact list, etc.

I've seen a lot of different ways for programs to communicate with Outlook
and Outlook Express (MAPI, Extended MAPI, etc.) but nothing that really
summarizes which approaches work for which versions of Outlook and Outlook
Express, and which version of Windows. For example, I've seen web pages
that recommend Extended MAPI to avoid triggering security prompts, but (1) I
don't think I'm doing anything that would trigger a security prompt, and (2)
I don't know if (for example) early versions of Outlook Express running on
Windows 98SE even had Extended MAPI.

This is going to run on retail customers personal computers, so I can't
assume they will have Exchange running.

Does anyone have suggestions ...
(1) which approach (MAPI, Extended MAPI, etc.) would allow me the limited
amount of information I need to access, and support the greatest range of
versions of Outlook and Outlook Express and also versions of Windows
(without installing additional DLLs)
(2) a library (commercial or free) that handles a lot of the grunt work for




Dmitry Streblechenko

Outlook and Outlook Express are completely separate products. The only thing
shared between them is the word "Outlook".
The only common API exposed by both applications is Simple MAPI, but it only
allows to enumerate messages in the Inbox folder.

For Outlook, you can use Extended MAPI (C++/Delphi only), CDO 1.21 and
Outlook Object Model. For that latter two, the security prompts will be
shown if you access any sensitive properties that can potentially contains
e-mail addresses, such as the sender name/address.
See for possible workarounds.

For OE, see

Dmitry Streblechenko (MVP)
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Michael Santovec

There is no API for Outlook Express to access messages. The only MAPI
support in Outlook Express is for sending messages.

Microsoft doesn't even provide any documentation on the format of the OE
DBX files, where messages are stored.

There is a 3rd party program that can provide some of the information
that you need, but I don't believe that it has any program interface for

OEX Enhancements - Import/Export/Resend/Duplicates/Attachments, etc.



Chris Shearer Cooper

Thanks ... looking at the msdn page, they list the APIs, but in typical
Microsoft style, they don't say which versions of OE support which
functions. Any idea?

I've got an email off to nektra to get more details on their product.

Your OEX program is only sold as a standalone product, right? What I need
is more of an API library kind of thing. Do you sell that?


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question