Exchange Online Unread Email Report

Copper Contributor

First...Exchange Online isn't my area of expertise...a little mercy please : )


What I have is a 12 year old ERP (Solaris/Oracle) system that emails "pdf reports" to our users. This represents about 42% of our sent traffic. We have always suspected that 90% of these reports go unread.


I'm looking for a way to get an unread email by sender report for the organization. I'm thinking that this is plausible...since the Microsoft Graph sort of surfaces unread email information. I'm not seeing anything easy out of the admin portals.


We are moving quickly to PBI, so the end goal here is to prove that our current solution is ineffective and untenable. I also suspect that there are other organization out there in the same situation.


We are an E5 first release tenant with just about every service running...thanks for any guidance.


1 Reply

It's a bit tricky, but if you know the details of a message you can get the "unread" status by using the Search-Mailbox cmdlet. You will need permissions first (at minimum the MailboxSearch role assigned). Here's an example of the cmdlet:


Search-Mailbox vasil -SearchQuery "Subject:blabla AND received<=07/10/2015" -LogOnly -LogLevel Full -TargetMailbox shared -TargetFolder eDiscovery


Here I provide a subject and relative date, you can adjust it as per your scenario. The LogOnly parameter makes sure messages are not copied, only log information is gathered, and the LogLevel Full gives us the Read status, amongh other things. TargetMailbox/TargetFolder is where the log file will be saved.


Now, that's an example with single mailbox/recipient, you can search multiple ones by feeding them to the Search-Mailbox cmdlet. Once you run the cmdlet, go to the TargetMailbox and open the attached CSV file to get the status.