EASYENTRA Blog

News & Updates

Check Who Has Access to a Mailbox in Microsoft 365

Mailbox permissions, full access, send as, and send on behalf.

Mailbox permissions are commonly checked during compliance and security audits because they control who can read or send emails on behalf of other users. Otherwise, too many unnecessary or outdated delegations may remain unnoticed. To properly maintain access, administrators need a reliable way to check all mailbox delegations in their Microsoft 365 environment.  

Mailbox Permissions in Exchange Online 

Mailbox delegation consists of three distinct permission types: 

  • Full Access: Allows a delegate to open and access another user’s mailbox.
  • Send As: Allows a delegate to send emails that appear to come from the mailbox owner.
  • Send on Behalf: Allows a delegate to send emails on behalf of the mailbox owner (the sender is identified as “Delegate on behalf of Owner”).

The primary challenge in mailbox delegation reviews is asymmetry: You can easily see who has access to a particular mailbox, but there is no way to easily see what mailboxes a particular user has access to. To answer that question, you must iterate through all mailbox permissions in the entire organization.

Let’s look at the available options to list mailbox permissions in Microsoft 365.

How to List All Mailbox Delegate Permissions in Microsoft 365 

Below are the native methods admins can rely on to check mailbox delegations in their Microsoft 365 environment.

1. Using Microsoft 365 Admin Center: 

Sometimes you only need to check one or two mailboxes. Here’s the quickest way:

  1. Sign in to the Microsoft 365 admin center. Navigate to Users Active users.
  2. Click on the mailbox you want to check. Go to the Mail tab.
  3. Under Mailbox permissions, you can select the required permission link to access the delegates.

Drawback:

  • You cannot generate a consolidated report for the entire tenant; permissions must be viewed one mailbox at a time.

2. Using Exchange Admin Center:

This method allows viewing delegation directly from the mailbox properties, but only one mailbox at a time.

  • Sign in to the Exchange Admin Center.
  • Go to Recipients > Mailboxes.
  • Select a mailbox and click Delegation in the properties pane to see all assigned permissions.

Drawback:

  • Similar to the standard Admin Center, the EAC does not support generating a single, tenant-wide delegation report.
  • In hybrid environments, certain permissions like “Send As” do not automatically sync and may not be viewable or manageable correctly via the cloud-based EAC.

3. Using PowerShell:

For any serious bulk reporting, PowerShell is a practical option. Here’s a PowerShell script to export a mailbox permission report using PowerShell.

#1. Connect to Exchange Online
Connect-ExchangeOnline 

#2. Define an array to hold all results
$FullPermissionReport = @()

#3. Get all mailboxes (User, Shared, etc.)
Write-Host "Retrieving mailboxes..." -ForegroundColor Cyan
$Mailboxes = Get-Mailbox -ResultSize Unlimited
$TotalMailboxes = $Mailboxes.Count
$CurrentMailbox = 0
$ProgressPreference = "Continue"

Write-Host "Processing $TotalMailboxes mailboxes..." -ForegroundColor Cyan

foreach ($MB in $Mailboxes) {
    $CurrentMailbox++
    $MBIdentity = $MB.UserPrincipalName
    
    # Display progress bar
    Write-Progress -Activity "Processing Mailbox Permissions" `
                   -Status "Processing ($CurrentMailbox of $TotalMailboxes): $MBIdentity" `
                   -PercentComplete (($CurrentMailbox / $TotalMailboxes) * 100)
    
    # Get Full Access Permissions 
    $FullAccess = Get-MailboxPermission -Identity $MBIdentity | Where-Object {
        ($_.User -notlike "*NT AUTHORITY\SELF*") -and ($_.IsInherited -eq $false)
    } 
 
    # Get Send As Permissions
    $SendAs = Get-RecipientPermission -Identity $MBIdentity | Where-Object {
        ($_.Trustee -notlike "*NT AUTHORITY\SELF*") -and ($_.Trustee -ne "Null sid")
    } 
        
    # Get Send on Behalf Permissions 
    $SendOnBehalf = $MB.GrantSendOnBehalfTo 
    
    # 4. Consolidate results into a custom object for each delegate 
    foreach ($FA in $FullAccess) { 
        $FullPermissionReport += [PSCustomObject]@{
            Mailbox        = $MBIdentity 
            Delegate       = $FA.User 
            PermissionType = "Full Access"
        } 
    }    
    foreach ($SA in $SendAs) {
        $FullPermissionReport += [PSCustomObject]@{
            Mailbox        = $MBIdentity
            Delegate       = $SA.Trustee
            PermissionType = "Send As"
        } 
    }
    foreach ($SOB in $SendOnBehalf) { 
        $FullPermissionReport += [PSCustomObject]@{ 
            Mailbox        = $MBIdentity 
            Delegate       = $SOB 
            PermissionType = "Send on Behalf"
        }
    }
}

# Clear the progress bar
Write-Progress -Activity "Processing Mailbox Permissions" -Completed

Write-Host "`nProcessing complete! Found $($FullPermissionReport.Count) permission entries." -ForegroundColor Green

#5. Output the final consolidated list 
$FullPermissionReport | Out-GridView 

# To save to a file instead, use:
# $FullPermissionReport | Export-Csv -Path "C:\AllMailboxPermissions.csv" -NoTypeInformation

The script may take several minutes or even hours to complete. But eventually you’ll see the result set in a GridView, allowing you to, e.g., identify mailboxes with stale permissions:

Drawbacks: 

  • Requires familiarity with the Exchange Online PowerShell module and manual steps to export results to a usable format like CSV.
  • For large tenants (thousands of mailboxes), scripts can be extremely slow and may encounter “I/O issues” or timeout errors.
  • The result set is not interactive, and changing or removing permissions will require additional scripting.

Automate Mailbox Delegation Reporting with EasyEntra

EasyEntra addresses these limitations by automatically collecting mailbox delegation data across the entire tenant. It aggregates Full Access, Send As, and Send on Behalf permissions into a single, centralized report, eliminating the need for manual PowerShell scripts.

Key Benefits:

  • EasyEntra retrieves delegation information from all mailboxes automatically.
  • The report can be filtered by mailbox, delegate, or permission type to quickly find specific delegations.
  • Export the complete delegation report for audit or compliance purposes.
  • Remove unnecessary or outdated mailbox delegations directly from the report interface.

This eliminates the need for repeated PowerShell executions and reduces the operational overhead associated with manual delegation reviews.  

In addition to visibility, EasyEntra helps identify obsolete or risky delegations, including permissions tied to deleted users or orphaned SID-based entries that are not easily visible in the Microsoft 365 or Exchange Admin Centers. These stale permissions often remain unnoticed during normal operations but are frequently flagged during security reviews.

For detailed instructions on creating a mailbox delegation report in EasyEntra, visit:

https://easyentra.com/knowledge-base/how-to/how-to-create-a-report-delegated-access-to-mailboxes/

Free 30-minute demo

try 30 days for free

GET EASYENTRA NEWS

Opt out at any time

“One of the best products I've used.”
Gary Shurland
Chief Information Officer, Mirick, United States
“This tool has been invaluable in streamlining our IT processes.”
Tyson Mckay
Chief Information Officer, Southwest Network, United States
“This product has been a miracle for our Help Desk. EasyEntra has completely transformed how we handle Microsoft 365 administration.”
Doug Sanders
Manager of Technical Customer Support, Junior Achievement USA, United States
“Your product is such a time saver. I love it!”
Scott Fehr
IT Infrastructure, MEC Aerial Work Platforms, United States
“It's a good product and saves us lots of time for these ongoing quick admin tasks.” 
Chris McFerran
Managing Director, CTech IT Solutions Ltd, United Kingdom
“EasyEntra has significantly streamlined our workflow, simplifying everything. It feels almost like a revolution.”
Johan Sadelius
IT-chef, Arjeplog Kommun, Sweden
I greatly appreciate your assistance and willingness to enhance the already outstanding product.”
Michael I. Wilson
Executive Director of Information Technology, Archdiocese Of Washington, United States
“It's great not having to switch back and forth between the O365 admin center and the Teams admin center to assign groups. I am sold!”
Thomas Madden
Director Information Technology, AutoPayPlus, United States
“I would highly recommend organizations use the solution as it greatly simplifies various tasks.”
S. Roger Singh
Chief Technology Officer, Prasad & Company LLP, Canada
“EasyEntra is time-saving. Love the copy/paste for user/computer groups and the copy to new user.”
Damian Nita
Associate Network Administrator, Shenandoah Valley Westminster-Canterbury, United States
“EasyEntra has transformed our daily IT operations by simplifying user management, reducing errors, and enhancing overall efficiency.”
Henrik Nefling
IT- and Digitalization Manager, Animal Protection Denmark, Denmark