๐Ÿ“ง Recipe ยท Exchange & Email

Forward All Emails from a Mailbox to a Distribution Group

Route all incoming messages from a user or shared mailbox to a distribution group in Exchange Online

Complexity

Intermediate

Impact

mail-flow + exchange-online + mailbox-configuration + distribution-groups + forwarding

Context

Why This Matters

There are many scenarios where you need to redirect all mail arriving at a mailbox to a distribution group: a departing employee's messages going to their team, a role-based inbox (like info@ or support@) feeding a shared notification list, or an alias consolidating messages into a team workflow.

Exchange Online offers several mechanisms for this โ€” mailbox-level forwarding (ForwardingAddress / ForwardingSmtpAddress), inbox rules, and transport rules. Each has different behaviour around keeping copies, handling aliases, and respecting external-forwarding policies. This recipe covers the most common path: configure mailbox-level forwarding via Exchange Online so that mail sent to the mailbox (including all its SMTP aliases) is automatically delivered to a distribution group.

Run this when you need a durable, admin-controlled forwarding setup that survives the user signing out, their Outlook rules being deleted, or their mailbox being converted between shared and regular types.

Expected Outcomes

After completing this recipe you will have:

  • Confirmed the source mailbox and its alias addresses
  • Identified the target distribution group and verified it accepts internal mail
  • Configured mailbox-level forwarding on the source mailbox to the distribution group
  • Chosen whether to keep a copy of each message in the source mailbox
  • Validated that mail sent to the primary address and each alias is successfully forwarded

Risks & Considerations

Important considerations

  • Mail loops: Never set forwarding such that the target group contains the source mailbox โ€” this creates an infinite loop and is blocked by Exchange, but misconfigurations can still cause NDR storms.
  • External forwarding policy: If the distribution group resolves to an external address, the tenant's anti-spam outbound policy (AutoForwardEnabled) may block delivery silently. This recipe assumes an internal distribution group.
  • Graph API limitations: The Microsoft Graph mailboxSettings endpoint does not expose ForwardingAddress or ForwardingSmtpAddress. For reliable, mailbox-level forwarding you must use Exchange Online PowerShell (Set-Mailbox) or the Exchange Admin Center. Attempting to PATCH forwarding via Graph will return 200 OK but not persist forwarding โ€” this is a well-known gotcha.
  • Inbox rules vs. mailbox forwarding: Inbox rules (created via Graph or Outlook) only fire when the mailbox is actively processing the Inbox folder. They can be deleted by the user and do not apply to messages delivered directly to aliases that bypass the Inbox. Mailbox-level forwarding is the stronger, admin-enforced option.
  • Audit and compliance: Silently forwarding a user mailbox to a group may have legal or HR implications. Document the change and, where required, notify the mailbox owner.
  • Distribution group membership changes: Anyone added to the target group will now receive all forwarded mail. Review group membership before enabling.

Required Permissions

PermissionWhy It's Needed
Exchange Administrator (or Recipient Administrator)Required to run Set-Mailbox and modify forwarding properties on any mailbox in the tenant
Exchange.ManageAsApp (Graph)Required when running Exchange Online PowerShell from an automation/service principal context
MailboxSettings.ReadWriteRequired only if using Graph inbox rules as a fallback approach (weaker than Set-Mailbox)
Mail.ReadWriteRequired to create Graph-based inbox rules on the source mailbox
Group.Read.AllRequired to look up the target distribution group's primary SMTP address

The fastest way to get this done โ€” just ask Dex. Copy the prompt below and paste it into your Dex conversation.

For IT Admins

Paste into Dex CoAdmin

Forward all mail sent to {source_mailbox} (including its aliases) to the distribution group {target_group}. Keep a copy in the original mailbox, confirm there is no mail loop, and verify delivery with a test message.
Try in Dex CoAdmin

For End Users

How an employee would ask Dex for help

Please send a copy of every email that comes to {source_mailbox} to our {target_group} group as well.
Try in Dex Playground