Skip to main content Skip to footer

Complete Guide for IT Administrators

How to Get Mailbox Size Reports in Office 365

Managing mailbox sizes in Office 365 is essential for preventing storage issues, controlling costs, and maintaining optimal performance. This comprehensive guide covers all available methods, from built-in Office 365 tools to advanced third-party solutions, helping you choose the right approach for your organization.

Why Mailbox Size Reporting Matters

Effective mailbox size management helps you:

  • Prevent service disruptions when users hit storage limits
  • Optimize performance as oversized mailboxes slow down Outlook
  • Control costs by avoiding unexpected storage charges
  • Meet compliance requirements for data retention policies
  • Plan capacity using historical growth data
  • Identify security risks from inactive accounts
Key Use Cases for Mailbox Size Reporting
  1. Basic Mailbox Size Reporting:
    Generate comprehensive reports showing all mailbox sizes, item counts, and last activity dates for organizational overview and baseline assessment.
  2. Identifying Top Storage Consumers:
    Find the largest mailboxes in your organization to focus cleanup efforts and understand storage distribution patterns.
  3. Quota Utilization Analysis:
    Monitor users approaching their storage limits to prevent service disruptions and guide storage allocation decisions.
  4. Detecting Oversized Mailboxes:
    Identify mailboxes exceeding specific size thresholds (5GB, 10GB, 25GB) or item counts (50K, 100K+ items) that impact performance and may require immediate attention.

Getting Started: Choose Your Approach

Quick Decision Guide:
  • Small teams (< 50 users): Start with Microsoft 365 Admin Center
  • Growing organizations (50-500 users): Use Exchange Admin Center
  • Large enterprises (500+ users): PowerShell or professional tools

Method 1: Microsoft 365 Admin Center

Best for: Small organizations, quick overviews, non-technical administrators

Step-by-Step Process:

  1. Sign in to Microsoft 365 Admin Center (admin.microsoft.com)
  2. Navigate to Reports > Usage
  3. Select Mailbox usage report
  4. Choose your time period (7, 30, 90, or 180 days)
  5. Click View details for per-user data
  6. Export to CSV for further analysis

What You Get:

  • Organization-wide storage overview
  • Per-user storage consumption
  • Last activity dates
  • Basic trend information
  • Simple CSV export

Limitations:

  • Maximum 180 days of historical data
  • Updates every 24-48 hours (not real-time)
  • Basic filtering options only
  • No automation capabilities
  • Limited customization

Method 2: Exchange Admin Center (EAC)

Best for: Exchange-focused tasks, quota management, real-time data

Step-by-Step Process:

  1. Access admin.exchange.microsoft.com
  2. Go to Recipients > Mailboxes
  3. Click Columns to customize the view
  4. Enable Mailbox size and Archive mailbox columns
  5. Sort and filter as needed
  6. Select mailboxes for bulk operations

What You Get:

  • Real-time mailbox data
  • Individual quota settings
  • Archive mailbox information
  • Bulk management capabilities
  • Direct quota modifications

Limitations:

  • No historical trending
  • Basic export functionality
  • No automated reporting
  • Exchange-only focus
  • No advanced analytics

Method 3: PowerShell Scripts

Best for: Large environments, automation, detailed reporting

 

Essential Setup:

If you are unsure how to connect to Office 365, copy this script and replace "admin@yourdomain.com" by an Office 365 admin account before running it in PowerShell.

# Install Exchange Online Management module (one-time)
Install-Module -Name ExchangeOnlineManagement -Force
# Connect to your tenant
Connect-ExchangeOnline -UserPrincipalName admin@yourdomain.com
  • Use Case 1: Basic Mailbox Size Reporting:
    Generate comprehensive size reports for all mailboxes and export it to CSV.
# Get all mailbox sizes
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | 
Select-Object DisplayName, 
@{Name="SizeGB";Expression={[math]::Round(($_.TotalItemSize.Value.ToBytes()/1GB),2)}}, 
@{Name="ItemCount";Expression={$_.ItemCount}}, 
LastLogonTime | 
Export-CSV "BasicMailboxSizeReporting.csv" -NoTypeInformation
Write-Host "Report saved to BasicMailboxSizeReporting.csv"
  • Use Case 2: Identifying Top Storage Consumers:  
    Find the 20 largest mailboxes in your organization and export it to CSV.
# Find the biggest mailboxes
$TopMailboxes = Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | 
Sort-Object TotalItemSize -Descending | 
Select-Object -First 20 DisplayName, 
@{Name="SizeGB";Expression={[math]::Round(($_.TotalItemSize.Value.ToBytes()/1GB),2)}}, 
@{Name="Items";Expression={$_.ItemCount}}

# Display results
$TopMailboxes | Format-Table -AutoSize

# Export to CSV
$TopMailboxes | Export-CSV "TopStorageConsumers.csv" -NoTypeInformation
Write-Host "Report saved to TopStorageConsumers.csv"
  • Use Case 3: Quota Utilization Analysis:
    Monitor users approaching their storage limits and export their list to CSV.
# Check quota utilization 
$Results = @()
$Mailboxes = Get-Mailbox -ResultSize Unlimited

foreach ($Mailbox in $Mailboxes) {
    Write-Host "Processing: $($Mailbox.DisplayName)"
    $Stats = Get-MailboxStatistics $Mailbox.Identity -ErrorAction SilentlyContinue
    
    if ($Stats) {
        # Extract bytes from format like "169.1 MB (177,265,658 bytes)"
        $SizeString = $Stats.TotalItemSize.Value.ToString()
        if ($SizeString -match '\(([\d,]+)\s+bytes\)') {
            $SizeBytes = [double]($Matches[1] -replace ',','')
            $UsedGB = [math]::Round(($SizeBytes/1GB),2)
        } else {
            $UsedGB = 0
        }
        
        # Extract quota bytes the same way
        if ($Mailbox.ProhibitSendQuota -and $Mailbox.ProhibitSendQuota -ne "Unlimited") {
            $QuotaString = $Mailbox.ProhibitSendQuota.ToString()
            if ($QuotaString -match '\(([\d,]+)\s+bytes\)') {
                $QuotaBytes = [double]($Matches[1] -replace ',','')
                $QuotaGB = [math]::Round(($QuotaBytes/1GB),2)
                
                if ($QuotaGB -gt 0) {
                    $PercentUsed = [math]::Round(($UsedGB / $QuotaGB) * 100, 2)
                } else {
                    $PercentUsed = 0
                }
            } else {
                $QuotaGB = "Unknown"
                $PercentUsed = 0
            }
        } else {
            $QuotaGB = "Unlimited"
            $PercentUsed = 0
        }
        
        $Results += [PSCustomObject]@{
            DisplayName = $Stats.DisplayName
            UsedGB = $UsedGB
            QuotaGB = $QuotaGB
            PercentUsed = $PercentUsed
            Status = if ($PercentUsed -gt 90) { "Critical" } 
                    elseif ($PercentUsed -gt 80) { "Warning" } 
                    else { "OK" }
        }
    }
}

# Show results
$Results | Sort-Object PercentUsed -Descending | Format-Table -AutoSize

# Show users approaching quota limits
Write-Host "`nUsers over 75% quota usage:" -ForegroundColor Yellow
$Results | Where-Object {$_.PercentUsed -gt 75} | 
Sort-Object PercentUsed -Descending | 
Format-Table -AutoSize
$Results | Export-Csv "CheckQuotaUtilization.csv" -NoTypeInformation
Write-Host "Report saved to CheckQuotaUtilization.csv"
  • Use Case 4: Detecting Oversized Mailboxes by Thresholds:
    Identify mailboxes exceeding specific size or item count limits and export their list to CSV.
# Configure your actual thresholds here
$SizeThresholdGB = 10     # 10 GB - adjust as needed
$ItemThreshold = 100000   # 100,000 items - adjust as needed

Write-Host "Searching for mailboxes exceeding: $SizeThresholdGB GB OR $ItemThreshold items"
Write-Host "This may take a few minutes for large organizations..."

$Results = Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | ForEach-Object {
    $SizeString = $_.TotalItemSize.Value.ToString()
    if ($SizeString -match '\(([\d,]+)\s+bytes\)') {
        $SizeBytes = [double]($Matches[1] -replace ',','')
        $SizeGB = [math]::Round(($SizeBytes/1GB),2)
    } else {
        $SizeGB = 0
    }
    
    [PSCustomObject]@{
        DisplayName = $_.DisplayName
        PrimarySmtpAddress = (Get-Mailbox $_.Identity).PrimarySmtpAddress
        SizeGB = $SizeGB
        ItemCount = $_.ItemCount
        Issue = if ($SizeGB -gt $SizeThresholdGB -and $_.ItemCount -gt $ItemThreshold) 
                    {"Size & Items"} 
                elseif ($SizeGB -gt $SizeThresholdGB) 
                    {"Size"} 
                else {"Items"}
    }
} | Where-Object {
    $_.SizeGB -gt $SizeThresholdGB -or $_.ItemCount -gt $ItemThreshold
} | Sort-Object SizeGB -Descending

if ($Results) {
    Write-Host "`nFound $($Results.Count) mailboxes exceeding thresholds:"
    $Results | Format-Table -AutoSize
} else {
    Write-Host "`nNo mailboxes found exceeding the specified thresholds."
}
$Results | Export-Csv "OversizedMailboxesByTreshold.csv" -NoTypeInformation
Write-Host "Results exported to OversizedMailboxesByTreshold.csv"

PowerShell Advantages:

  • Complete control and customization
  • Real-time data access
  • Automation and scheduling capabilities
  • Advanced filtering and calculations
  • Integration with other systems
  • Free (included with Windows)

PowerShell Challenges:

  • Requires PowerShell knowledge
  • Time-intensive script development
  • Ongoing maintenance needed
  • No built-in visualizations
  • Manual historical data tracking
  • Complex error handling requirements

When You Need More Than Native Tools

Many organizations find that built-in Office 365 tools have limitations that impact their ability to effectively manage mailbox storage:

Common Challenges:

  • Historical Data Limitations:
    Native tools, i.e. Microsoft 365 Admin Center and EAC, provide limited historical data with a maximum of 180 days, making it difficult to track long-term trends or meet compliance requirements for extended data retention. PowerShell, on the other hand, only returns current point-in-time mailbox statistics.
  • No Automated Alerting:
    There's no built-in system to automatically notify administrators when mailboxes approach quota limits or when unusual storage growth occurs.
  • Limited Cross-Tenant Visibility:
    Organizations managing multiple Office 365 tenants (common for MSPs) must access each tenant separately, with no consolidated reporting capability.
  • Time-Intensive Manual Processes:
    Creating comprehensive reports often requires combining data from multiple sources and significant manual effort, especially for larger organizations.
  • Lack of Business Intelligence:
    Native tools provide raw data but lack the analytics, trending, and predictive capabilities that help with strategic planning and cost management.

Enterprise Reporting Platforms

Several third-party solutions address these limitations by providing enhanced reporting capabilities.

Microsoft Power BI with Office 365 Connectors:

  • Leverages existing Microsoft ecosystem
  • Powerful visualization and dashboard capabilities
  • Requires Power BI licensing and expertise
  • Complex initial setup and ongoing maintenance

Available Third-Party Tools:

  • Comprehensive Office 365 monitoring and reporting suites
  • Advanced analytics with extended historical data retention
  • Multi-service coverage (Exchange, SharePoint, Teams, OneDrive)
  • Enterprise-grade compliance and audit capabilities
  • Automated alerting and scheduled reporting
    Varying complexity from simple dashboards to full management platforms
  • Pricing ranges from mid-market to enterprise-level solutions
  • Higher licensing costs for comprehensive feature sets
  • Steep learning curves for advanced configurations
  • May include unnecessary features for organizations focused solely on mailbox reporting

Focus on Promodag Reports:

  • Specialized Office 365 reporting solution
  • Advanced mailbox sorting capabilities by size, items, and custom criteria
  • Comprehensive mailbox size analytics with unlimited historical data
  • Automated report generation and delivery
  • No PowerShell knowledge required
  • Quick deployment (typically under 30 minutes)

Key Differentiators to Consider:

When evaluating professional solutions, consider these factors:

  • Historical Data Retention:
    How far back can you access mailbox size data? Some solutions offer unlimited historical retention while others are limited.
  • Automation Capabilities:
    Can the solution automatically generate and deliver reports? Look for scheduling, email delivery, and alert capabilities.
  • Ease of Use:
    Consider the technical expertise required. Some solutions require extensive PowerBI or SQL knowledge, while others offer point-and-click simplicity.
  • Deployment Time:
    How quickly can you get meaningful reports? Solutions range from immediate deployment to weeks of configuration.

To Go Further With Promodag Reports

Beyond basic mailbox size reporting, Promodag Reports provides advanced analytics that help organizations gain deeper insights into their Office 365 storage usage.

How Promodag Reports Addresses These Use Cases:
  • Enhanced Basic Reporting:
    Comprehensive mailbox size analytics with unlimited historical data, allowing you to track trends over time rather than just current snapshots. Automated report generation eliminates manual PowerShell execution.Mailbox Size Growth
  • Advanced Storage Consumer Analysis:
    Visual graphs and interactive charts displaying top storage consumers with drill-down capabilities by department, user type, or custom criteria. Far more sophisticated than simple PowerShell sorting.Maillbox Storage Information
  • Proactive Quota Management:
    Automated alerting when users approach quota limits, with customizable thresholds and notification schedules. No need to manually run scripts to check quota utilization.Mailbox Size Fluctuation
  • Intelligent Threshold Detection:
    Advanced mailbox sorting by multiple criteria simultaneously (size, item count, growth rate) with automated alerts for oversized mailboxes.Mailboxes exceeding their quotas
Additional Advanced Features:
  • Mailbox Size Change Tracking: Historical trend analysis showing growth patterns over time
  • Automatic Archiving Verification: Content age analysis to ensure archiving policies are working correctly
  • Consolidated interface: Single GUI for hybrid environments

Making the Right Choice for Your Organization

Small Organizations (Under 100 Users)

Recommended Starting Point: Microsoft 365 Admin Center

  • Sufficient for basic reporting needs
  • No additional cost or complexity
  • Easy for non-technical staff to use

Consider Upgrading When:

  • You need more than 180 days of historical data
  • Manual reporting becomes time-consuming
  • You require automated alerts or notifications

Medium Organizations (100-1,000 Users)

Recommended Approach: Exchange Admin Center + PowerShell

  • EAC for daily reporting and quota management
  • PowerShell scripts for detailed monthly reports
  • Balance of capability and cost

Consider Professional Tools When:

  • PowerShell maintenance becomes burdensome
  • You need executive dashboards
  • Compliance requires extensive historical data

Large Organizations (1,000+ Users)

Recommended Strategy: Professional reporting solution

  • Native tools don't scale effectively at this size
  • Manual processes become prohibitively time-consuming
  • ROI of professional tools typically positive within first month

Best Practices for Implementation

Establish a Reporting Routine

Weekly Tasks:

  • Review users approaching quota limits
  • Check for unusual storage growth patterns
  • Report on inactive mailboxes

Monthly Tasks:

  • Generate comprehensive size reports
  • Analyze departmental usage trends
  • Review and adjust quota policies

Quarterly Tasks:

  • Present executive summaries
  • Conduct storage cost analysis
  • Update capacity planning projections
Optimize Your Environment

User Education:

  • Train users on mailbox management best practices
  • Communicate storage policies clearly
  • Provide guidance on archive usage

Technical Configuration:

  • Implement appropriate retention policies
  • Configure archive mailboxes for long-term storage
  • Set realistic quota limits based on user roles

Proactive Management:

  • Set up alerts for quota violations
  • Report on growth trends to anticipate needs
  • Regular cleanup campaigns for inactive accounts

Getting Started: Next Steps

Immediate Actions (This Week):
  1. Baseline Assessment: Use Admin Center to understand current storage usage
  2. Identify Issues: Find users approaching quota limits using EAC
  3. Test PowerShell: Try the basic scripts provided above
Short-term Planning (This Month):
  1. Evaluate Needs: Determine if native tools meet your requirements
  2. Consider Alternatives: If native tools are insufficient, research professional solutions
  3. Pilot Testing: Many professional solutions offer free trials
Long-term Strategy (Next Quarter):
  1. Implement Chosen Solution: Deploy your selected reporting approach
  2. Establish Processes: Create regular reporting and management routines
  3. Train Staff: Ensure your team can effectively use the chosen tools

Conclusion

Effective mailbox size reporting starts with understanding your options and requirements. Native Office 365 tools provide a solid foundation and should be your starting point for basic reporting needs.

However, as organizations grow or reporting requirements become more sophisticated, the limitations of built-in tools often necessitate professional solutions.

The key is to start with what's available, understand your actual needs through hands-on experience, then make informed decisions about when and how to upgrade your capabilities.
Whether you stick with native tools or invest in professional solutions, the most important factor is establishing consistent reporting practices that help you proactively manage your Office 365 environment.

For organizations ready to explore professional reporting solutions, Promodag Reports offers a comprehensive 45-day free trial with full feature access and no credit card required. This allows you to directly compare professional capabilities with your current native tool experience using your actual Office 365 data.

Download Promodag Reports Free Trial

About the author

Promodag

Promodag has been developing email reporting software for Microsoft Exchange and Office 365 environments since 1994, with our main product Promodag Reports now recognized as a market leader.

Comprehensive Exchange reporting made simple for Office 365, On-Premise, and Hybrid environments

Start your free 45-day trial of Promodag Reports