The species table
| Type | What it is | Sign-in | |
|---|---|---|---|
| UserMailbox | A person's mailbox | Full | Yes |
| MailUser | Directory user whose mail lives ELSEWHERE (external address) | Routed out | Yes (to M365, not a mailbox) |
| MailContact | External person in the GAL | External only | No |
| SharedMailbox | Ownerless mailbox (delegation concept) | Full | Blocked by design |
| Room/Equipment | Bookable resources | Calendar-centric | Blocked |
| DL / DynamicDL / M365 Group | Expansion objects (groups concept) | Fan-out | — |
The migration-era pair to master: MailUser vs MailContact. A MailUser is a real directory identity (licensable, permission-holdable) pointing at external mail — the standard shape for not-yet-migrated or cross-tenant users. A contact is just an address-book entry. Choosing wrong makes coexistence permissions impossible later.
Proxy addresses: the identity ledger
Every recipient carries EmailAddresses — SMTP: (primary, capitalised) plus smtp: aliases, X500 addresses, and protocol-specific entries. The rules that resolve daily mysteries:
- Uniqueness is tenant-wide across ALL recipient types — "address already in use" means SOME object holds it: a contact, a group, a soft-deleted mailbox. Get-Recipient <address> is the finder.
- X500 is the internal breadcrumb: Outlook autocomplete and old meeting entries resolve by legacy DN. Migrations that drop X500 history produce the classic IMCEAEX/5.1.1 bounces from cached entries — the fix is adding the old legacyExchangeDN as an X500 alias, not telling everyone to clear autocomplete (they won't).
- Reply-ability history: removing an alias breaks replies to old mail sent from it; aliases are cheap — hoard them.
What to watch (proofs)
- The finder reflex: Get-Recipient -Identity <address> | fl RecipientTypeDetails, EmailAddresses — the first command of every addressing dispute; it names the species and the ledger.
- Soft-deleted squatters: Get-Mailbox -SoftDeletedMailbox when an address is in use by nothing visible — the 30-day ghost holds it.
- X500 hygiene in migrations: sample migrated users for legacy-DN aliases BEFORE cutover; the IMCEAEX bounce wave is entirely preventable.
- The species census: recipients by RecipientTypeDetails (one pipe to group-by) — the estate's shape; odd rows (mailboxes that should be shared, contacts that should be MailUsers) are the cleanup queue.