Skip links

Outlook Express API

This API is used in Fortune 100 companies to build plugins for Outlook Express® and Windows Mail®

Contact Us Download OEAPI

Outlook Express API Product Overview


Outlook Express Application Programming Interface is a Software Development Kit (SDK) used in Fortune 100 companies to build plugins for Outlook Express® and Windows Mail®. Nektra’s services includes Windows Live Mail using our Windows Live Mail® API technology.

Used by the Top Security Vendors

We are pleased to have customers that are the Leaders in the Quadrant of Gartner’s Endpoint Protection Platforms.

You can read the full report on the Symantec Endpoint Security’s page.

Most of our enterprise customers have a special branch of the OEAPI that specially fits to their needs. This warranties them better performance and dedicated support.

OEAPI enables your software to reach over 400 million users worlwide with Outlook Express® and Windows Mail® already installed.


Our customers have been using OEAPI for a wide range of applications:

  • Anti Spam & Anti Phishing
  • Automatic encryption of emails
  • Anti Virus
  • Integration with Web 2.0 sites
  • Customer Relationship Management (CRM) (i.e: Salesforce AppExchange, vTiger, SugarCRM)
  • Contacts synchronization & backup

OEAPI component has support for GUI customization, Messages management, MIME handling and many other useful features.

Take a look at the OEAPI Features that fit your needs.

OEAPI’s Documentation

You can see a description of the ActiveX interfaces on the Product’s Documentation.

Customize your GUI

OEAPI enables you to extend Outlook Express & Windows Mail graphical user interface placing your own controls like:

  • Custom Toolbars.
  • Custom Buttons.
  • Custom Menu items.

You can bind them to events in your application.

Most programming languages

You can develop your product using a wide range of languages supporting COM/ActiveX technologies.

  • Visual C++ (ATL/Comet)
  • .NET (C# / VB.NET)
  • Java
  • VB6, Perl/PHP/Ruby/Python

Take advantage of the OEAPI versatility.

Easy Messages Management

Manage messages in MIME format through our useful interface that supports:

  • Attachments
  • MIME bodies handling
  • Modifying custom and standard
  • Properties & headers(i.e: Subject, To, From)
  • Minimize the complexity of messages structures with OEAPI.

OEAPI Features

OEAPI supports Outlook Express® 6 running on Windows® NT, 2000 and XP.

OEAPI is also a Windows Mail® API, it works with Windows® Vista’s email client.

Customers that purchase the OEAPI Enterprise Edition with Source Code can support XP and Vista 64 bits.

Newsgroups (NNTP), IMAP and Hotmail folders are not supported.

OEAPI Enterprise Edition now works with Outlook Express’ and Windows Mail’s internal notifications to achieve a much faster performance!

Check what’s new in OEAPI’s latest release by clicking here.



Standard Version

Enterprise Version


All the functionality is implemented in a COM object.    
A demo application written in Visual Basic is included in the package.    
A demo application written in Visual C++ is included in the package.    
A demo application written in C# is included in the package.    
A small demo application written in Dephi is included in the package.    
Plugin support as a dll that runs in OE/WM’s same space. You will be able to run inside OE/WM.    
Basic Identity support.    

User Interface

Add buttons and sub-buttons to OE/WM’s default main window’s toolbar.    
Add your own toolbars, buttons and sub-buttons to OE/WM’s main window.    
Add tooltips to your buttons.    
Multi toolbars support. Create more than one toolbar from your plugin.    
Your toolbars can be created with small or large buttons.    
Add toolbar separators.    
Multi-buttons support (Like the OE/WM’s ‘Create Mail’ button).    
Enable / Disable / Show / Hide your toolbar’s buttons.    
Add your own menus and sub-menus to OE/WM’s main and message windows.    
Enable / Disable your menu items.    
Handle the click events of your buttons, sub-buttons and menu items.    


Browse all the folders of Outlook Express and Windows Mail.    
Rename / Move / Delete / Create a folder.    
Handle the OnNewMessage and OnMessageDeleted events in a folder.    
Handle the global event OnNewMessage when a message arrives.    
Handle general events: OnFolderCreated, OnFolderDeleted, OnFolderRenamed, OnFolderMoved, OnFolderUnreadChanged and OnFolderSelectionChanged.    


Browse messages in a folder.    
Get Header / Body / Source.    
Get Message State / Priority / Display From / Subject.    
Basic MIME Support: Browse, modify, insert and remove bodies.    
Attachment API: Add / List / Save to disk (Temove is provided in the Bodies API).    
Change any message properties. (Some visible properties changes, like ‘Subject’, ‘To’ and ‘From’, are reflected correctly in the preview panel and in the detail window, but they cannot be reflected in OE/WM’s messages listview directly. To have them reflected correctly you need to clone the message first.)    
Get / Set custom properties / headers.    
Message Clone: Make an exact copy of a message. Changes to cloned message’s visible properties are reflected correctly on OE/WM’s messages list view.    
Delete / Create message.    
Mark as Read / Unread.    
Copy / Move messages.    
Send message.    

Messages / Folder Selection

Get / Set Selected Message/s.    
Get / Set Selected Folder.    


OnDatabaseChange, the fastest notification available for Database Transactions: New message, message deleted, message changed to read or unread, new folder and folder deleted.    
OnMessageDownloadStarted and OnMessageDownloadFinished, triggered when OE/WM synchronizes messages with server/s.    

Outbox Filter

Modify the messages before they are sent.    
Modify the text of the control where is displayed the current message.    

Message Window

(Compose, Reply, Reply All, Forward and Open Message windows)

Add buttons and subbuttons to OE/WM’s default toolbar.    
Multi toolbars support. Create more than one toolbar from your plugin.    
Toolbars can have small or large buttons.    
Multi-buttons support (Like the ‘Create Mail’ button in OE/WM).    
Enable / Disable / Show / Hide toolbar buttons.    
Get / Set Subject.    
Get / Set Body.    
Get / Set Cc.    
Get / Set To.    
Press the ‘Send’ button.    
Send any key as a user input.    
Handle the button’s click events.    
Handle the ‘Send’ button click event.    
Cancel the ‘Send’ process started by the user.

OEAPI License

  • OEAPI Standard edition is released under a freeware license.

Click here to read the OEAPI Standard Edition license

  • OEAPI Enterpise edition is licensed under a developer basis: You have to purchase a license for each developer that will work with the library.

Click here to read the OEAPI Enterprise Edition license

  • You do not have to pay royalties for distributing OEAPI within your software.

OEAPI Support

Support is given through OEAPI’s Support Mailing List.

You can search the group about the topic of your interest.

If you don’t find what you are looking for, once subscribed you can post your question to be answered by OEAPI Support Team.

IMPORTANT: Please specify which OEAPI edition and version number, which operating system and which programming language are being used when you post.

You can also browse the support archives.

OEAPI’s Documentation

You can see a description of the ActiveX interfaces on the Product’s Documentation.

.Net Guideline

  • Given certain internal limitations of Outlook Express and Windows Mail, the best way to work is to have the fewest possible amount of references to OEAPI objects.
  • On each scope, every time an OEFolder and an OEMessage is not used anymore, call Marshal.ReleaseComObject() method from the System.Runtime.InteropServices namespace to release it.

Otherwise objects are not released instantly by the .NET framework, the internal limit for the amount of possible handled objects is reached and different problems occur.

  • It is better to use just one OEFolderManager.
  • It is better to use just one OEAPIObj for using the objects’ IDs (i.e. toolbars IDs, buttons IDs, menu items IDs, etc.).
  • As soon as OEAPIObj objects (OEToolbar, OEButton, etc.) are no longer used, assign null/nothing to them.
  • On OnShutDownOEAPI() release every OEAPI object except OEAPIInit, and, at the end, call for the Garbage Collector twice:



  • OEAPI from version 3.6.0 to 3.7.0

    Released on January 2016

    • Removed SharedSection to prevent AV detection.
    • Changed some code to remove BinScope warnings.
    • Updated Deviare In-Proc library.

    WLMailAPI changes from version

    OEAPI from version 3.5.0 to 3.6.0

    Released on December 2014

    • All OEAPI COM library binaries and installer executable are properly code-signed.
    • This release includes security-enhanced compiler settings and applied patches to binary files as follows:
      • ASLR (Base Address Randomization) active by default.
      • NX (NoExecute-bit) active by default.
      • Security Update for Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package (KB2538243)
      • Visual Studio 2008 Service Pack 1 MFC Security Update (KB2538241)
      • Security Update for Microsoft Visual Studio 2008 Service Pack 1 (KB2669970)
      • Visual Studio 2008 Service Pack 1 ATL Security Update (KB971092)
      • Visual Studio 2008 Service Pack 1 GDIPLUS.DLL Security Update (KB972222)
      • Visual Studio 2008 Service Pack 1 ATL for Smart Devices Security Update (KB973675)
      • Visual Studio 2008 Service Pack 1 XML Editor Security Update (KB2251487)
      • Update for Microsoft Visual Studio 2008 Service Pack 1 (KB2938806)
    • Minor fixes.

    OEAPI from version 3.4.0 to 3.5.0

    Released on June 2014

    • Added MailAccountManager and MailAccount classes for iterating, getting account properties, and getting the default account.
    • Raises an event when default-account changes.

    OEAPI from version 3.3.1 to 3.4.0

    Released on February 2014

    • Added OEStore/OECOM classes back in the HTML documentation.
    • Added Comet file bundle to the installer.
    • Added missing DISPIDs for better readability in COM client code
    • Added IOEMsgWnd::GetHandle
    • Added IOEMsgWnd::SaveDraft
    • Added IOEMsgWnd::Close

    OEAPI from version 3.2.4 to 3.3.1

    Released on July 2013

    • Added SetDisplayTo, SetNormalSubject, setSubject and SetDisplayFrom methods for modifying the database entry directly.
    • Fixed a bug where a string operation caused access.
    • Fixed demo plugin issues.

    OEAPI from version 3.2.3 to 3.2.4

    Released on August of 2011

    • Fixed: ThinApp compatibility issue.
    • New Hooking technique.
    • Added new demos.
    • General Code Improvements.

    Changes from version 3.2.2 to 3.2.3

    Released on November of 2008

    • New! Added OEMessage::GetFlags method which returns the flags that describe message’s composition. Check this MSDN link to see flags descriptions.
    • New! Added OEMessage::SetReadOnly/IsReadOnly methods to set a message as read-only, and to check if it was set this way by OEAPI.
    • New: Added a sample implementation of the OEAPIObj::OnDatabaseChange event to the C# DLL Demo plugin.
    • New: C# DLL Demo now loads toolbar images from resources.
    • Fixed for DLL plugins: OEMessage::Clone() failed to copy the account info in Windows Mail (This is not possible on EXE applications).
    • Fixed: Calling ActivateGlobalNotification() caused OE/WM to not shutdown.
    • Fixed: OEAPIObj::OnDatabaseChange case OE_TR_DELETE_FOLDER was triggered twice for each folder deleted event.
    • Fixed: On Windows Mail selecting a non-local folder sometimes triggered a OEAPIObj::OnFolderSelectionChanged event.
    • Fixed: OEAPIObj::SendMessage() method was sending the message even when OE/WM was set to ‘Work Offline’.
    • Fixed: When the destination file already existed, OEMessage::SaveAsFile() appended the content to the file instead of overwriting it.
    • Fixed on C# EXE Demo: When switching folders, sometimes the Demo failed to load a folder’s messages.
    • Fixed: On Vista x64, OEAPIObj::SendMessage() method didn’t work on Windows Mail.
    • Fixed: On Vista x64, OEFolder::DeleteMessage(msgId, True) opened a dialog on Windows Mail asking for confirmation.
    • Added the SetReadOnly/IsReadOnly OEMessage methods to the documentation.

    Changes from version 3.2.1 to 3.2.2

    Released on May of 2008

    • New! OEAPI Standard Edition has now a freeware license.
    • New! OEMsgWnd methods GetBcc/SetBcc added.
    • New! IOEFolder::CreateMessage upgraded: Allows to set the created message state (I.E. Unread, Unsent).
    • New: C# DLL and Delphi DLL demo solutions added to the package.
    • Fixed: Windows Mail crashed when clearing “Deleted items” folder.
    • Fixed: Windows Mail crashed while opening newsgroups folders.
    • Fixed: On WM, OEStore message events were triggered only for the first message on multiple messages operations.
    • Fixed: On WM, OEAPIOBj::SendMessage only worked for messages on Outbox. Now it works for messages in any folder.
    • Fixed: On WM, OEMessage::Delete(False) was not working if the message was on ‘Deleted items’.
    • Fixed: On WM, SetBody did not work when the ‘Show messages in plain text only’ option was enabled.
    • Fixed: OE crashed when compacting all folders.
    • Fixed: On OE, OEAPIObj::SendMessage was working incorrectly.
    • Fixed: Message’s listview column headers disappeared when restarting OE/WM.
    • Fixed: GetFilename/GetBodyProp incorrectly retrieved Unicode characters.
    • Fixed: Using Clone and Commit for messages with certain non-english headers and attachment names corrupted messages’ body (Unicode issue).
    • Fixed: The IOEToolbar.SetShown(0) method did not work in the IOEAPIInit.InitOEAPI event handler.
    • Fixed: SetImageNormal/SetImageMouseOver/SetPicture/SetPictureMouseOver did not work correctly.
    • Fixed: C# Demo couldn’t display folder content when having a large amount of messages (~1000 or more).
    • Fixed: GetSelectedFolderID returned an incorrect folder ID for IMAP folders. This folders are not supported.
    • Fixed: Documentation updated.

    Changes from version 3.2.0 to 3.2.1

    Released on September of 2007

      • New! OnDatabaseChange event now supports two new transactions:”Rename Folder” and “Move Folder”.

    NOTE: To support “Move Folder” transaction, OnDatabaseChange has four parameters now (newParentId contains the destination folder’s id on Move Folder events, and is -1 in the other transactions).

      • Fixed: SendAndReceiveMessages didn’t work in Windows Mail.
      • Fixed: Outlook Express didn’t start if there were many folders (over 80).
      • Fixed: Windows Mail didn’t display messages if there were many folders.
      • Fixed: Windows Mail displayed an error message if, after closing the application, the ‘Sending pending mails’ process was canceled.
      • Fixed: Windows Mail didn’t check how ‘Send messages immediately’ was configured.
      • Fixed: A ‘Folder in use’ warning appeared when trying to compact folders on Windows Mail.
      • Fixed: Main window’s toolbars disappeared if application was closed and reopened if a message window remained open.
      • Fixed: Couldn’t permanently delete a message on Windows Mail (this is fixed for dll plugins).
      • Fixed: Some operations corrupted messages’ source code under Outlook Express (this is fixed for dll plugins).
      • Fixed: Delphi failed to correctly import OEAPI dlls (parameter ‘result’ had to be renamed).
      • Fixed: OnDatabaseChange and OnNewMessageInInbox were triggered in different threads.

    NOTE: This version is not binary compatible with version 3.2.0 or previous versions because we had to change CLSID of OECOM objects in order to support the new events for IOEAPIObj::OnDatabaseChange.

    To use this version in projects using v3.2.0 or previous versions of OEAPI, you must remove references to old oecom.dll, and then add references to the new oecom.dll.

    Changes from version 3.1.2 to 3.2.0

    Released on June of 2007

    • New! OEToolbar: GetMaskColor and SetMaskColor get and set bitmap’s transparent color.
    • New! OEToolbar: GetPictureSize and SetPictureSize can get the size of the bitmap and set it to suit your needs. NOTE: SetPictureSize must be called before adding buttons, and does not work for OE/WM’s default toolbar.
    • New! OEButton: SetPicture and SetMouseOverPicture can set button’s bitmap with IPictureDisp.
    • New! OEButton: GetName, IsEnabled, IsVisible and GetTooltip.
    • New! OEButton: CreateSubSeparator can create separators between subbuttons.
    • New! OEMenu: CreateItemAt and CreateSeparatorAt can create menu items in specific positions (Experimental feature).
    • New! OEMenuItem: IsVisible, IsEnabled, GetText and SetText.
    • New! OEMsgWnd: GetIHTMLDocument2 gets the IHTMLDocument2 of the message (Experimental feature). IMPORTANT: We do not offer support about IHTMLDocument2. It’s supported on Microsoft’s Newsgroups.
    • New! OnDatabaseChange now supports message’s read/unread state change events (Experimental on Windows Mail).
    • New! SubButtons now support checked style and enable/disable.
    • Fixed: OEAPIObj’s SendMessage didn’t work on Windows Mail. NOTE: Now only messages that are in Outbox can be set to be sent with SendMessage on Windows Mail.
    • Fixed: OEFolder’s OnNewMessage event gave a pointer to msgId instead of the msgId on Windows Mail..
    • Fixed: OEMsgWnd’s GetTo and GetCC just returned “;” on Windows Mail..
    • Fixed: OEButton with drop down arrow kept pushed down after one click on OE/WM’s default toolbar (Main and message windows).
    • Fixed: OEToolbar did not resize correctly when a drop down OEButton was added.
    • Fixed: OnMessageDownloadFinished was triggered multiple times for one event.
    • Fixed: OEButtons adjusted their width to the longer button’s text on Windows Mail.
    • Fixed: OEMessage’s Clone and Commit didn’t work in DLL plugins on Windows Mail.

    Changes from version 3.1.1 to 3.1.2

    Released on April of 2007

    • Fixed: OE’s default toolbar buttons disappeared in message windows when OEAPI toolbars were added.
    • Fixed: In Windows Mail, OEAPI toolbars were created in the same row of the default toolbar.
    • Fixed: ‘Send All’, ‘Receive All’ and ‘Send & Receive All’ were not working in Windows Mail while launcher.exe was running.
    • New: OEAPI C# Demo Visual Studio® 2003 project included.
    • New: VB Demo lets you create toolbars and buttons on Outlook Express and Windows Mail message windows now.
    • New: VB Demo sets tooltips on main window toolbars’ buttons now.
    • New: Enterprise with Source Code edition now includes the VS2005 projects which are used to build the official OEAPI.

    Changes from version 3.1.0 to 3.1.1

    Released on February of 2007

    • Fixed: IE7® did not work on Windows Vista® while launcher was running.
    • Fixed: Default OE toolbar buttons disappeared in message windows when toolbar buttons without text were added.

    Changes from version 3.0.0 to 3.1.0

    Released on January of 2007

    • Toolbar’s buttons on Message Windows can now be added, removed, set enabled, disabled, hidden and shown.
    • Menu Items on Message Windows are now supported and can be added, removed, set enabled, disabled, hidden and shown.
    • Product documentation updated.
    • Improved compatibility with .NET platform.
    • Identity switch fixes.
    • SetSelectedFolderId fixed on Windows Vista®.
    • SetSelectedMessageId fixed on Windows Vista®.

    Changes from version 2.3.1 to 3.0.0

    Released on December of 2006

    • Windows Vista’s Windows Mail support.
    • New OpenCurrentMessage function simulates a double-click on the current item.
    • ComposeMessage simulates a ‘Create Mail’ action.
    • CreateMessage has a new flag to set if the new message is created unread (Interface modified).
    • ‘Message Selection’ code was modified in order to improve the performance and the reliability of the operation.
    • Improved ‘Folder Selection’ performance.
    • OEIdentity now lets you know which is the current identity. Useful to know if the identity has changed, to prevent re-scan of folders on startup.
    • OEAPI.OnDatabaseChange now provides much faster notifications for new and deleted messages.
    • Changed to a NSIS installer and added Start Menu icons.

OEAPI Downloads

OEAPI Standard Edition – Freeware

OEAPI Enterprise Edition – Evaluation Version

Test all the functionality of the Enterprise Edition for 30 days using the included Demo projects:

  • Visual Basic (VB) EXE Demo (Without Visual Studio it requires this modules)
  • Visual Basic .NET (VB.NET) DLL Demo
  • Visual C++ (VC++) EXE Demo
  • Visual C++ ATL DLL Demo
  • Visual C Sharp (C#) EXE Demo
  • Visual C Sharp (C#) DLL Demo
  • Delphi EXE Demo
  • Delphi DLL Demo

Just a few setup steps:

  • Install OEAPI (With OE / WM closed)
  • Run a Demo Application
  • Run Outlook Express® / Windows Mail®

For Windows® 2000, XP and Vista

  • OEAPI was originally developed for Outlook Express but is also a Windows Mail API, it supports Windows® Vista’s email client.
  • To compile VC++ Demo Application you need to download and install an external library (See the included documentation).
  • To work with .NET take a look at OEAPI’s .NET Guideline

OEAPI’s Documentation

You can see a description of the ActiveX interfaces on the Product’s Documentation.

OEAPI Purchase

All versions are for one developer only, and include one year of product upgrades.

Please feel free to Contact us directly.

Join the 300+ companies trusting Nektra

us air force
cornell university
apache milagro
trend micro

Latest Articles

This website uses cookies to improve your web experience.