Investigating InternetMessageId in Microsoft Defender XDR.
Three users reported the same phishing email.
The sender looked the same.
The subject matched.
Agent Foskett needed to prove whether they were truly the same message.
The answer was hidden inside InternetMessageId.
In Microsoft Defender XDR, InternetMessageId helps defenders correlate email evidence, trace message delivery and connect related investigation records across Microsoft 365.
Lesson overview
Learn how to investigate InternetMessageId in EmailEvents and use message identifiers to correlate phishing reports, mail flow evidence and related investigation activity.
Why InternetMessageId matters
The fields used in this lesson
Step 1 — Review InternetMessageId activity
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
EmailEvents
| where Timestamp > ago(30d)
| where isnotempty(InternetMessageId)
| project Timestamp,
InternetMessageId,
NetworkMessageId,
SenderFromAddress,
RecipientEmailAddress,
Subject
| order by Timestamp desc
Step 2 — Investigate a specific InternetMessageId
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
EmailEvents
| where InternetMessageId == "<InternetMessageId>"
| project Timestamp,
SenderFromAddress,
RecipientEmailAddress,
Subject,
DeliveryAction,
DeliveryLocation,
ThreatTypes
| order by Timestamp desc
Step 3 — Find every recipient of the same message
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
EmailEvents
| where InternetMessageId == "<InternetMessageId>"
| summarize RecipientCount = dcount(RecipientEmailAddress),
MessageCount = count()
by InternetMessageId,
Subject,
SenderFromAddress
Step 4 — Pivot from subject to InternetMessageId
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
EmailEvents
| where Timestamp > ago(30d)
| where Subject contains "Invoice"
| project Timestamp,
InternetMessageId,
NetworkMessageId,
SenderFromAddress,
RecipientEmailAddress,
Subject
Step 5 — Compare InternetMessageId with delivery outcomes
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
EmailEvents
| where Timestamp > ago(30d)
| where isnotempty(InternetMessageId)
| summarize MessageCount = count()
by InternetMessageId,
DeliveryAction,
DeliveryLocation,
ThreatTypes
| order by MessageCount desc
Step 6 — Identify repeated InternetMessageId values
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
EmailEvents
| where Timestamp > ago(30d)
| where isnotempty(InternetMessageId)
| summarize RecipientCount = dcount(RecipientEmailAddress),
FirstSeen = min(Timestamp),
LastSeen = max(Timestamp)
by InternetMessageId,
Subject
| order by RecipientCount desc
How to read the results
Common investigation uses
Common mistakes
What you learned
Related Agent Foskett Academy lessons
Coming next
Final thought
Investigating InternetMessageId in Microsoft Defender XDR
Agent Foskett Academy Lesson 71 teaches defenders how to investigate InternetMessageId during Microsoft Defender XDR email investigations.
Learn InternetMessageId investigation in Defender XDR
This lesson explains how InternetMessageId, NetworkMessageId, Subject, SenderFromAddress, RecipientEmailAddress, DeliveryAction and ThreatTypes help defenders correlate email evidence, trace phishing reports and connect related Microsoft 365 investigation records.
