Skip to content

Unused Mailboxes

The question it answers: Which mailboxes have not received mail for longer than the inactivity threshold?

Mailboxes that have not received mail for more than the inactivity threshold (Settings > Report thresholds).

Where in the appExchange Online › Mailboxes › Unused Mailboxes
WorkloadExchange Online
KindTable
DataRead from Microsoft 365 when someone first opens it, then kept for the report cache lifetime (Settings > Data & cache, 1 hour unless changed). It reads through PowerShell (Exchange Online or SharePoint Online), so the first load takes longer than a Graph report.
LicenceExchange Online.
Report id (API and MCP)exchange.mailboxes.unused
ColumnKeyType
Display NameDisplayNameText
User Principal NameUserPrincipalNameText
Primary AddressPrimarySmtpAddressText
Last Activity DateNewestItemReceivedDateDate

Licence: Exchange Online.

Application permissions on the IntensiveReports app registration (all permissions):

PermissionAPIWhat it allowsNote
Exchange.ManageAsAppOffice 365 Exchange OnlineManage Exchange As Application

Roles and other setup:

  • Exchange role: View-Only Recipients
Data sources it reads
  • PowerShell: Get-EXOMailbox -ResultSize Unlimited
  • PowerShell: Get-EXOMailboxFolderStatistics -IncludeOldestAndNewestItems
GET /ir-api/v1/reports/exchange.mailboxes.unused?size=100

An AI assistant reads it with the MCP tool get_report and the id exchange.mailboxes.unused. The client needs the Read grant for Exchange Online. See Using the API.