Learn › Exchange Online › 1 · Foundations

Limits, quotas and mailbox plans

Every mailbox inherits invisible defaults from a MAILBOX PLAN — the per-licence template our scanner reads — and every why-can't-I-send has a limit behind it. The numbers, the layers, and which layer wins.

The layer cake (specific wins over general)

Org config → mailbox/CAS PLAN (per licence tier) → per-mailbox overrides. Plans are the under-documented middle: templates applied at licensing time (four in a typical tenant — our scan lists them, and our POP/TLS verdict mapping reads them). Change a plan and you change FUTURE mailboxes; existing ones keep their stamped values — the classic 'new starters behave differently' explanation.

The numbers that actually bite

Limit Typical value Symptom when hit
Mailbox quota (by licence) 50GB / 100GB tiers Prohibit-send at threshold; 5.2.2 inbound bounces beyond
Message size 25MB default, raisable to 150MB (client paths vary) 'Attachment too large', both directions — raise deliberately
Recipient rate 10,000 recipients/day The app or marketing mailbox that dies mid-campaign — HVE/ACS territory (auth module)
Message rate 30 messages/minute submission Scripted senders throttle-crawling
Recipients per message 500-1,000 by config One send, hundreds of NDRs
Deleted-item retention 14 days default → 30 max Recovery windows shorter than users assume

The philosophical point: these are ANTI-ABUSE rails, not capacity dials — the fix for hitting rate limits is almost never 'raise it' (mostly you can't) but 'use the right pipe': HVE internal, ACS external, Graph for apps (protocol-retirements concept).

What to watch (proofs)

  • The plan truth: Get-MailboxPlan | fl Quota and Get-CASMailboxPlan (both in the nightly scan — plan drift is a dated diff, which mattered the day our TLS mapping fired on PopEnabled).
  • Effective values per mailbox: Get-Mailbox | fl Quota, MaxSend*, MaxReceive*, RecipientLimits — stamped reality vs plan template; deltas are deliberate overrides or archaeology.
  • Quota pressure fleet-wide: the near-quota report — next month's 5.2.2 bounces, visible this month (Pulse's capacity row).
  • Throttle encounters: submission logs + trace DEFER patterns at metronomic rates — the signature of a limit, not an outage.

PowerShell for this concept

  • Get-MailboxPlan View information about mailbox plans in the cloud-based service.
  • Get-CASMailboxPlan This cmdlet is functional only in the cloud-based service. Use the Get-CASMailboxPlan...
  • Get-Mailbox View mailbox objects and attributes, populate property pages, or supply mailbox...
  • Get-TransportConfig View organization-wide transport configuration settings.

Discussion

No messages yet — start the thread.

Sign in with your email to join the discussion — we send a one-time link, no password.