To find mailbox-level forwarding in Exchange Online, read ForwardingAddress and ForwardingSmtpAddress for your mailboxes. Check inbox rules separately: a mailbox can redirect messages through a rule even when its forwarding settings are empty.
| Method | Best fit |
|---|---|
| PowerShell | A tenant-wide list of configured mailbox forwarding. |
| Admin centre | Checking the forwarding setting on an individual mailbox. |
| Altivane | Recommended for recurring reviews that also need inbox rules and a workbook. |
Before you start
Use an Exchange account with permission to read the relevant mailboxes and rules. Have the Exchange Online PowerShell module installed if you use the script. The examples read configuration and export it; they do not change forwarding.
Separate the questions: where is forwarding configured, and will messages actually be delivered? Remote domain settings and outbound policies can block automatic external forwarding. A configured destination is not proof of successful delivery.
Option 1
Find mailbox forwarding with PowerShell
Install the module once, then connect to the tenant and export its forwarding settings. The Delivery property set explicitly requests the forwarding properties.
# Install once, if the module is not already installed.
Install-Module ExchangeOnlineManagement -Scope CurrentUser$ErrorActionPreference = 'Stop'
Connect-ExchangeOnline
try {
$mailboxes = Get-EXOMailbox -ResultSize Unlimited -PropertySets Delivery
$report = @($mailboxes | Where-Object {
$_.ForwardingAddress -or $_.ForwardingSmtpAddress
} | Select-Object DisplayName,PrimarySmtpAddress,ForwardingAddress,
ForwardingSmtpAddress,DeliverToMailboxAndForward)
if ($report.Count -eq 0) {
Write-Output 'No mailbox-level forwarding was found. Inbox rules were not checked.'
} else {
$report | Export-Csv -Path './mailbox-forwarding.csv' -NoTypeInformation -Encoding utf8
}
} finally {
Disconnect-ExchangeOnline -Confirm:$false
}ForwardingSmtpAddress records an SMTP destination. ForwardingAddress can identify a directory recipient, including a mail contact that delivers externally, so resolve that recipient before classifying it as internal. DeliverToMailboxAndForward indicates whether a copy is retained in the original mailbox.
Also inspect forwarding inbox rules
Reconnect with Connect-ExchangeOnline, then run this read for a specific mailbox. The main export above disconnects when it finishes.
# Run while connected to Exchange Online. Replace the example mailbox.
Get-InboxRule -Mailbox 'person@example.com' -IncludeHidden |
Where-Object { $_.ForwardTo -or $_.ForwardAsAttachmentTo -or $_.RedirectTo } |
Select-Object Name,Enabled,ForwardTo,ForwardAsAttachmentTo,RedirectToThe rule's Enabled value matters. A disabled rule is configuration to review, not an active forwarding action. Mail flow rules are another separate route for copying or redirecting messages; a mailbox and inbox-rule review alone is not a complete mail-flow audit.
Option 2
Inspect forwarding in the admin centre
- Open the Exchange admin centre for the correct tenant.
- Go to Recipients > Mailboxes and select the mailbox.
- Open Mailbox > Email forwarding > Manage email forwarding.
- Read the current forwarding setting, destination and whether the mailbox retains a copy. Close the pane without changing or saving anything.
This is a straightforward check for a single account. It does not replace a separate inbox-rule review or a report across all mailboxes.
Option 3 ยท Recommended for recurring reviews
Report on forwarding with Altivane
- Open Altivane and choose the tenant.
- Run the Forwarding and Inbox Rules reports for Exchange Online.
- Open the Excel workbook and review the forwarding destinations and inbox rules.
- Check which inbox rules forward, redirect, delete or hide messages.
Altivane marks destinations outside the organisation's accepted domains. Review those findings in context, and check any collection errors before treating a result as complete. An approved external destination and an unexpected one can look similar in a raw list.
Contact usCommon questions
Why is there no CSV after the forwarding script?
The script writes a CSV only when it finds mailbox-level forwarding. Its console message explicitly says that inbox rules were not checked, so an empty forwarding result must not be read as a clean rule audit.
Does finding an external address prove an account was compromised?
No. Confirm the account owner, business purpose and relevant audit records. The report identifies settings to investigate; it does not determine intent.
Can forwarding remain after a user leaves?
Yes, a forwarding configuration can remain while the mailbox exists. Include it in your account review alongside licence assignments and mailbox access.
Microsoft references
Technical references checked on 5 October 2026. The example scripts have been reviewed and syntax checked; they have not been run against a live tenant.