How can I get user's sent, received and read count for a specific date range?

Brass Contributor

In O365, in the "E-mail activity" reports at https://admin.microsoft.com/Adminportal/Home#/reportsUsage/EmailActivity, there's a dashboard that presents data for e-mail accounts. Some columns are Received count, sent count and read count.  

This is only limited to choosing "Last 7 days" or 30 days or 90 days.   

Is there a way to get this data for a specified date range? For example, 1/1/2020 through 1/28/2020? 

Closest solution I can think of is starting a Get-MessageTrace on the first day of the date range and saving it as a .csv for each day, or appending it and add a date column for the date the cmdlet was run. 

7 Replies

As answered on EE, you can either get it for a specific duration (7,30, etc days) or specific date (not a range). https://docs.microsoft.com/en-us/graph/api/reportroot-getemailactivityuserdetail?view=graph-rest-1.0...

@Vasil Michev 

Oh hi! lol. Thanks so much. Yes that helps. Coming across this, it looks like that's exactly what I need:

https://gsexdev.blogspot.com/2018/01/a-walk-though-using-graph-api-mailbox.html

 

Thank you

@Vasil Michev 

Interestingly, after I figured out how to return data for a particular date, I show for my own e-mail that I didn't send or receive or read any e-mail on Jan 15th. 

However when I look at my Outlook client, I see plenty of sent/received e-mail. 

Do you know why that might be? Is that data only for a certain client maybe? Wondering if maybe I was using a different Outlook client on that day. 

"https://graph.microsoft.com/v1.0/reports/getEmailActivityUserDetail(date=2020-01-15)

Well that's what I said above, you can either run it for *specific* date or one of the pre-configured ranges (1d,7d,30d,..).

@Vasil Michev 

Yeah that definitely helped and works. However I'm finding the data returned (number of e-mails sent for example) for a specific date is different than what I see at my mailbox level for the same date. 

Which makes me wonder if the last 7 days or 30 days even is actually returning accurate data. 

 

So say you ran the query I did, and saw your mailbox in the report for that specific date. And it said your number of emails sent was 8. Then you went to your Outlook and looked at your sent items, and you counted 20 sent with that same date. Would it seem like the Graph API was off a bit? 

It wont be the first time those reports are inaccurate, or missing data.

Thanks yeah it just seems like a casual collection of data not to be depended on for business.
I think I’m better off going on the Exchange server to get Sent and Received counts perhaps. Won’t give me “read” but I think that’s unimportant.