Suggest the org's own mailboxes, aliases and shared mailboxes

Featurekamo-internal
Shipped
August 7, 2026 at 12:55 AM UTC
Author
kamo
Commit
8342071

The recipient autocomplete only knew contacts and addresses scraped out of the Sent folder, so the organisation's own addresses — everything managed on **************** — had to be typed from memory. New GET /api/email/directory fans out to the four EmailService sources behind that page and returns one deduped address list. Aggregated server-side because each of those calls consumes its own one-time key; from the browser it would be four OTK round trips every time a composer opens. Each source degrades on its own, so an org whose provider has no provisioning still gets its aliases. The list is cached in memory and matched locally — orgs have tens of these, not thousands, and a query parameter per keystroke would put a network round trip in front of suggestions the browser can already answer. Org matches therefore paint immediately while the contact and Sent-folder lookups are still in flight, and they lead the dropdown: it is a small exact set, and an internal address that also sits in a contact book should read as the mailbox, not the contact card. Editing mailboxes in Settings drops the cache, so a new address is suggestable without a reload. EmailService's base-URL and forward helpers move out of the catch-all route so the new route mints its OTK the same way instead of keeping a second copy.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing