Application.NewMailEx Event

Outlook Developer Reference

Occurs when a new item is received in the Inbox.



expression   A variable that represents an Application object.


Name Required/Optional Data Type Description
EntryIDCollection Required String A string representing an Entry ID of an item received in the Inbox.


This event fires once for every received item that is processed by Outlook. The item can be one of several different item types, for example, MailItem, MeetingItem, or SharingItem. The


string contains the Entry ID that corresponds to that item. Note that this behavior has changed from earlier versions of the event when the


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


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 online Exchange Server account (non-Cached Exchange Mode), the event will fire only if Outlook is running. The event will not fire for the items that are received using an online Exchange Server account when Outlook is not running.

For users using Cached Exchange Mode, the event will fire in all settings: Download Full Items, Download Headers, and Download Headers and then Full Items.


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.

Visual Basic for Applications
  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
End Sub

See Also