Skip to main content

Posts

Showing posts with the label Unread

Looking at raw Mailbox analytics data using EWS and a ChangeDiscovery script

Mailbox analytics is something Microsoft have been working on for a number of years and its seems to be something that has received a little more effort in these pandemic times. If you have ever looked at the Non_IPM_Subtree of your mailbox you will see a lot of data being stored in their from various apps and substrate processes. A while back i wrote a ChangeDiscovery script to allow me to dump out quick what changes where happening in a Mailbox in a short time frame (eg i wanted to see what happened to all the items in a Mailbox when i performed a specific task). If you run this script with a slightly longer time-frame (eg looking over a day) it picks up all the Items that are being written and created for the Mailbox insights processes and other substrate processes. Most of these emails get written under the  Usually if I then wanted to look at these type of items I would use OutlookSpy or MFCMapi to browse the raw MAPI properties on items to see if they where of interest. Given...

EWS Basics: Message Flagging and Marking Messages Read/Unread

Messages that are stored in Exchange can be flagged in a number of ways to indicate different states to the user or as an effective method to prompt the user to action (or make them remember to do something). Unread/Read Flags  The most commonly used Flag in Exchange is the Unread/Read Message flag which is used so when a message arrives in Mailbox a user can track which messages they have read. In EWS this flag is surfaced in the API in the form of a Strongly type property isRead   https://msdn.microsoft.com/en-us/library/office/bb408987(v=exchg.150).aspx  . (The underlying Store property that back this is PidTagMessageFlags property https://msdn.microsoft.com/en-us/library/ee160304(v=exchg.80).aspx   which is a bitwise flag representing many states of a message). The other place the Unread Message flag is surfaced is on the Folder object in the guise of the Unread Item count. So in the below example we Bind to Inbox folder and we...

Unread email ews Powershell Module with reply and forward counting

I've done a few of these Unread / Unused mailbox scripts over the years but this one has a bit of a difference. As well as counting the Total number of unread email in the Inbox over a certain period of time it uses the PidTagLastVerbExecuted property to count how many email messages over that period of time had the client action ReplytoSender, ReplyAll or forwarded and also the number of email in the SentItems folder. This property is set on messages in the Inbox message when one of those actions is taken by the client so it is useful for tracking the use of Mailboxes and gathering statistics around how they are being used. eg here are a few samples of running this module The code uses both EWS and the Exchange Management Shell to get information about the Mailbox so you need to run it from within the EMS or a Remote PowerShell session (see this if your running it from Office365). I've put the script up on GitHub or you can download it from here . I've...

Using EWS and AQS to check number of Unread in X days with Graph

It seems that you can never have too many ways of reading the number of Unread messages in a Inbox so here is another method. The following script uses two AQS queries to work out first the number of messages in the Inbox from a prescribed period eg the last 30 days and then the number of these that are then unread. It then works out the percentage of unread using of the two values and then creates a graph to display in the Console using Alt-ASCII characters which produces a pretty nifty output eg It also produces a CSV output eg AQS queries will work in Exchange 2010 and 2013 so this script should work okay in those environments as well as ExchangeOnline. I've created two versions of this script, the first version just reports on one user so you run it with the email of the users you want to report on and the number of days to query back. eg .\AQSUsr.ps1 gscales1@msgdevelop.onmicrosoft.com 30 the second version reports on all of the users in a CSV file and uses EWS...
All sample scripts and source code is provided by for illustrative purposes only. All examples are untested in different environments and therefore, I cannot guarantee or imply reliability, serviceability, or function of these programs.

All code contained herein is provided to you "AS IS" without any warranties of any kind. The implied warranties of non-infringement, merchantability and fitness for a particular purpose are expressly disclaimed.