Frequently Asked Questions

Where do I set a reference in the VB references dialog?

You don't! vbMAPI requires no extra references.

Simply follow the instructions in Quick Start: Installation to add the necessary class modules to your project.  Nothing further is required.

I see there is an update available for vbMAPI. How do I update?

VBA / VB6:

First off you need to download the update for the AddIn. To do this, locate your receipt e-mail from us that includes the download link for the software. The link will provide you with the latest version to download.  Download the file and install it.

Once installed, you now need to update the class modules in your application(s).  To do this, with your application loaded, open the VBE and use the "Addins" > "vbMAPI" > "Add vbMAPI to this project" menu option.  This will now update the class modules to the latest version.  Job done!

VB.NET:

Locate your receipt e-mail from us that includes the download link for the software. The link will provide you with the latest version to download.  Download the file and install it.

Now, with your project loaded in Visual Studio, use the "Project" > "Add Existing Item..." menu option and locate the updated vbMAPI.vb file that is located in your Program Files\EverythingAccess.com\vbMAPI\VB.NET folder.

C#:

Locate your receipt e-mail from us that includes the download link for the software. The link will provide you with the latest version to download.  Download the file and install it.

Now, with your project loaded in Visual Studio, use the "Project" > "Add Existing Item..." menu option and locate the updated vbMAPI.cs file that is located in your Program Files\EverythingAccess.com\vbMAPI\C# folder.

(VBA/VB6) Do I need to uninstall the vbMAPI developer Add-In when upgrading to the full edition or when applying an update?

No.  Our installer handles everything for you.

(VBA/VB6) Do I need to delete the vbMAPI class modules in my project before upgrading to the full edition or when applying an update?

No.  The 'Add vbMAPI to this project' menu item does everything for you.

When I send a message using vbMAPI, the message stays in the Drafts or Outbox folder. Why?

This may arise if your message store is not tightly bound to an Exchange server.  For example, this situation often occurs if you are in cached Exchange mode or if it is a POP3/SMTP account that you are sending the message through.  In truth, this is a limitation of the Extended MAPI implementations provided by Outlook.

To fix this, we provide a special method on the vbMAPI_Session class called OutlookSendReceiveAll that forces Outlook to do an Send/Receive - this will then cause your messages to be sent immediately.

For example, to send a message and force Outlook to do a Send/Receive, then try this VBA code:

Dim Session As vbMAPI_Session
Dim Item As vbMAPI_MailItem

Set Session = vbMAPI_Init.NewSession
Session.LogOn

Set Item = Session.GetDefaultFolder(FolderType_Outbox).Items.Add

Item.To_ = "some_email_address@mail.com"
Item.Subject = "Some Subject"
Item.HTMLBody = "HTML message here..."

Item.Send

Session.OutlookSendReceiveAll

When sending out a batch of e-mails, you may wish to delay the Session.OutlookSendReceiveAll call until after the whole batch has been sent.

How does vbMAPI work?

vbMAPI is what we call a Virtual-COM library.

Virtual-COM is a method for us to run complex native machine code directly from a code module without needing to distribute any third-party DLLs. The Virtual-COM technology allows us to provide full ActiveX/COM-like libraries in self-contained code modules.  In many ways this technique works similarly to a "Statically linked library" available in some lower level languages.  This technology supports all VB languages (VBA, VB6, VB.NET) and also the C# language.

Virtual-COM technology is unique to EverythingAccess.com - it was designed fully in-house over a two year period. The technology is now mature and very stable. Over the coming months and years you will be hearing and seeing more about this fantastic new technology.

In May of 2010, we finished a major overhaul of the Virtual-COM engine (v2) to provide integrated 32 bit and 64 bit binaries. Along with this update we also added VB.NET support for the technology.

In December of 2010, we finished another major overhaul of the Virtual-COM engine (v3) to offer C# support and many stability and performance improvements. v3 also creates smaller compiled projects (15% smaller).

In particular, vbMAPI uses native machine code to access the low-level interfaces provided by Extended MAPI (the messaging subsystem used by Outlook). By doing this, we completely avoid the security restrictions imposed by the Outlook Object Model Guard and also provide many more lower-level features along the way.

Got a question?

Please send us your questions and feature requests here: vbmapi@everythingaccess.com.