Application.NewMailEx Event (Outlook)

Occurs when a new item is received in the Inbox.

Syntax

expression .NewMailEx(EntryIDCollection)

expression A variable that represents an Application object.

Parameters

Name

Required/Optional

Data Type

Description

EntryIDCollection

Required

String

A string representing an Entry ID of an item received in the Inbox.

Remarks

This event fires once for every received item that is processed by Microsoft Outlook. The item can be one of several different item types, for example, MailItem, MeetingItem, or SharingItem. The EntryIDsCollection string contains the Entry ID that corresponds to that item. Note that this behavior has changed from earlier versions of the event when the EntryIDCollection contained a list of comma-delimited Entry IDs of all the items received in the Inbox since the last time the event was fired.

This event is not available in Microsoft Visual Basic Scripting Edition (VBScript).

This event fires for e-mail accounts that provide notifications for received messages, such as Microsoft Exchange Server and POP3 accounts.

The NewMailEx event fires when a new message arrives in the Inbox and before client rule processing occurs. You can use the Entry ID returned in the EntryIDCollection array to call the NameSpace.GetItemFromID method and process the item. Use this method with caution to minimize the impact on Outlook performance. However, depending on the setup on the client computer, after a new message arrives in the Inbox, processes like spam filtering and client rules that move the new message from the Inbox to another folder can occur asynchronously. You should not assume that after these events fire, you will always get a one-item increase in the number of items in the Inbox.

For users with an Exchange Server account (non-Cached Exchange Mode or Cached Exchange Mode), the event will fire only for messages that arrive at the server after Outlook has started. The event will not fire for messages that are synchronized in Cached Exchange Mode immediately after Outlook starts, nor for messages that are already on the server when Outlook starts in non-Cached Exchange Mode.

For users using Cached Exchange Mode, the event will fire in all settings, provided that Outlook is running when the message is received: Download Full Items, Download Headers, and Download Headers and then Full Items.

Example

The following Microsoft Visual Basic for Applications (VBA) example demonstrates how the NewMailEx event passes an entry ID. The event will fire when an item is received in the Inbox. Note that for backward compatibility when running this code sample on versions of Outlook earlier than Microsoft Office Outlook 2007, this code sample also accepts as parameter a string that contains more than one comma-delimited Entry IDs for items that have been received in the Inbox since the last time the event was fired.

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String) 
 
 Dim varEntryIDs 
 
 Dim objItem 
 
 Dim i As Integer 
 
 varEntryIDs = Split(EntryIDCollection, ",") 
 
 For i = 0 To UBound(varEntryIDs) 
 
 Set objItem = Application.Session.GetItemFromID(varEntryIDs(i)) 
 
 Debug.Print "NewMailEx " & objItem.Subject 
 
 Next 
 
End Sub

See Also

Concepts

Application Object

Application Object Members