Knowledge Base

How to find the Message-ID of an email and use it to track messages in Exchange and Office 365

Problem:

You would like to find the Message-ID of an email and use this ID to track emails in Exchange Server and Office 365 (Exchange Online).

Solution:

About Message-ID

Message-ID (also known as Internet message ID or Client ID) is an identifier of emails. It is generated by the sending mail system. This identifier is not always unique - there might be multiple copies of the same message in more than one folder (or mailbox), and all of them might have the same Message-ID. For example, after sending a single email, it can have two copies: one located in the recipient's Inbox and the other one in the sender’s Sent Items folder. Both copies have the same Message-ID. This might be a source of confusion when looking at a long list of Exchange-wide search results.

Message-ID consists of a long string of characters (unique identifier of this message on the mail server) ending with the FQDN of the mail server (e.g. 25eb7e48-2252-48ea-80ce-cf2f6119a8e3@ENV95-E2013-1.domain95.lab). Message-ID of an email can be found in the message header. When using CodeTwo software, you can also find this identifier in the software's log files.

How to find the Message-ID of an email

Outlook 2007

To find the Message-ID of an email in Outlook 2007, right-click an email on the list and choose Message Options from the shortcut menu. A new window will open. You will find the Message-ID identifier in the Internet headers section (you might need to scroll down to find it, or you can copy the section's content to any text editor and use the editor's search options).

Outlook 2010, 2013 and 2016

To find the Message-ID in Outlook 2010 and later, you need to:

  1. Open an email in a new window (you can do it by double-clicking any message on your email list).
  2. Go to the File menu and on the Info tab click the Properties button (Fig. 1.).

496-1
Fig. 1. How to access message properties in Outlook 2016.

  1. The Message-ID property is displayed in the Internet headers section (Fig. 2.). The easiest way to find it is to copy the whole section's content (right-click the section and choose Select All, then Copy), paste it into any text editor and use the editor's search functionality to look for Message-ID.

496-2
Fig. 2. Finding Message-ID in the Internet headers section of Outlook 2016.

Outlook on the web (Office 365)

To find the Message-ID in Outlook on the web (OWA):

  1. Open an email, expand the More actions (v) menu and click View message details (Fig. 3.).

496-3
Fig. 3. Viewing message details in Outlook on the web.

  1. A new window opens. It contains your message header. You can find the Message-ID of your email by using the Ctrl+F keyboard shortcut (Fig. 4.).

496-4
Fig. 4. Finding Message-ID in the email header in Outlook on the web.

Warning

Make sure to find the right identifier (Message-ID), as shown in Fig. 4. Do not confuse it with the X-MS-Exchange-Organization-Network-Message-Id property that might also appear in the message header.

How to track emails in Exchange Server via Message-ID

The described solution requires Microsoft Exchange Server 2007 or newer.

When you know a Message-ID, you can track all emails with that particular Message-ID and get various information on the flow of these emails (e.g. their delivery status). All this information is included in the message tracking log. To generate an HTML message tracking log, you need to execute the following cmdlet in the ems Exchange Management Shell (EMS):

Get-MessageTrackingLog -MessageId "MESSAGE_ID" | ConvertTo-Html > C:\report1.html

To save the results to a custom location, change the path after the > character.

If you expect a long results list, it might be a good idea to export the result to a CSV file instead of the HTML version, by using the following cmdlet:

Get-MessageTrackingLog -MessageId "MESSAGE_ID" | ConvertTo-Csv > C:\report1.csv

In some cases, you might need to apply additional filters (e.g. time) to narrow down the results. In the example below, additional Time and Sender filters are applied:

Get-MessageTrackingLog -messageID: 6a455228903447dbaccc19d1c8bf38c3@ENV111-E2013-1.domain111.lab -Start "2015/09/14 01:03:12 PM" -Sender: Administrator@domain111.lab | convertTo-html > c:\report2.html

where:

  • Start determines the start point of Exchange Server message processing,
  • End is the end point of Exchange Server message processing,
  • Sender is the SMTP address of the mailbox.

You can find more information on the cmdlet syntax in this Microsoft article.

How to track emails in Office 365 (Exchange Online) via Message-ID

To track emails in Office 365, you can:

and provide Message-ID to narrow down the trace results.