๐Ÿ“ง Recipe ยท Exchange & Email

Create a Distribution List and Configure Shared Mailbox Forwarding

Provision a mail-enabled distribution list with external members and forward a shared mailbox (and its aliases) to it

Complexity

Intermediate

Impact

mail-flow + exchange-online + distribution-group + shared-mailbox + forwarding

Context

Why This Matters

A common Exchange Online pattern is to route inbound mail from a public-facing address (e.g. info@company.com) to a small team rather than a single person. The clean way to do this is:

  1. Create a mail-enabled distribution list (DL) that contains the recipients.
  2. Ensure any non-tenant members exist as Mail Contacts (DLs cannot contain raw external addresses โ€” they need directory objects).
  3. Configure the DL to accept mail from external senders.
  4. Set mailbox forwarding on the shared mailbox so every message (including those delivered to its SMTP aliases, such as dex@company.com) is redirected to the DL.

Run this recipe when you are standing up a new shared inbox, reorganising who owns an existing one, or consolidating multiple aliases behind a single team-routing address.

Important platform note: Microsoft Graph cannot create classic distribution lists, cannot create Exchange mail contacts, and in most tenants cannot modify a mailbox's forwarding SMTP address. These are Exchange Online objects owned by the Exchange service. The authoritative tooling is Exchange Online PowerShell or the Exchange Admin Center. Graph is only useful here for preflight lookups (confirming users, aliases, and existing groups).

Expected Outcomes

After completing this recipe you will have:

  • A mail-enabled distribution list {dl_address} visible in the Exchange Admin Center and GAL.
  • All required members (internal users and/or external mail contacts) added to the DL.
  • The DL configured to accept mail from senders outside the organization.
  • The source shared mailbox {source_mailbox} forwarding all inbound mail to the DL, with or without keeping a local copy.
  • Verified that mail sent to any SMTP alias of the shared mailbox (e.g. {alias_address}) also flows to DL members, because aliases are accepted addresses on the same mailbox and follow the same forwarding rule.

Risks & Considerations

Warnings and gotchas

  • Graph API limitation: POST /v1.0/groups with mailEnabled:true and securityEnabled:false returns Request_BadRequest โ€” Graph does not author distribution lists. Do not loop on this; switch to Exchange Online PowerShell.
  • External members must be Mail Contacts. A distribution list cannot store a bare external SMTP address; you must first create a MailContact with New-MailContact, then add it with Add-DistributionGroupMember.
  • Anti-auto-forwarding policy: Many tenants have an outbound anti-spam policy that blocks auto-forwarding to external recipients. If the DL contains external contacts and the shared mailbox forwards to it, recipients may silently stop getting mail. Review Anti-spam outbound policy โ†’ Automatic forwarding rules before going live.
  • External senders to the DL: Setting RequireSenderAuthenticationEnabled $false allows anyone on the internet to mail the list. This is usually desired for info@-style addresses but increases spam exposure โ€” keep the DL protected by your normal inbound mail hygiene.
  • Keep a copy? Decide whether the shared mailbox should also retain a local copy (DeliverToMailboxAndForward $true) for auditing/compliance, or forward only ($false). Forwarding-only means no archive in the source mailbox.
  • Graph mailbox forwarding is restricted. Even with MailboxSettings.ReadWrite, setting ForwardingSmtpAddress via Graph is blocked in most tenants for anti-exfiltration reasons. Use Set-Mailbox in Exchange Online PowerShell.
  • Licensing: The source shared mailbox under 50 GB does not require a license, but must not be converted to a regular mailbox during this work.

Required Permissions

PermissionWhy It's Needed
Exchange Administrator (or Recipient Administrator) roleRequired to create distribution groups, mail contacts, and modify mailbox forwarding in Exchange Online.
User.Read.All (Graph)Preflight lookups to confirm the source mailbox exists and to enumerate its proxyAddresses (aliases).
Group.Read.All (Graph)Preflight check that the target DL mailNickname/SMTP is not already in use.
ExchangeOnlineManagement PowerShell moduleAll write operations (New-DistributionGroup, New-MailContact, Set-Mailbox) are performed against Exchange Online, not Graph.

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

Create a distribution list {dl_address} (display name {dl_display_name}) with members {member_list}. For any members outside the tenant, create Mail Contacts first. Allow external senders to email the list. Then configure {source_mailbox} to auto-forward all mail to {dl_address} (keep a copy in the mailbox: {true|false}), and confirm that messages sent to its aliases (e.g. {alias_address}) also reach the DL members. Use Exchange Online PowerShell โ€” Graph can't do this.
Try in Dex CoAdmin

For End Users

How an employee would ask Dex for help

Mail sent to our info@ address should go to me and two teammates instead of just one shared inbox โ€” can you set that up?
Try in Dex Playground