In plain words: Reach: Email family
How Reach represents an email request (sender, recipients, subject, content, reply references) and how Gmail and Fastmail each translate it into their own protocol.
- 1Gmail uses MIME encoded for its REST API; Fastmail uses JMAP with a separate sending identity.
- 2Reads are bounded listings without full bodies; thread-scoped reads refuse rather than widening.
- 3Prepared requests carry no login or send authority; accounts and delivery are separate later work.
Partial Request preparation works; account connection and sending do not.
Words on this page, decoded click one for its card
Reply to a client from the selected mailbox without changing the application flow when the provider changes. Email owns the request's mail semantics: sender, recipients, subject, content and reply references. Gmail and Fastmail translate that request into different protocols.
EmailTarget names a local connection, a protocol account selector, the sender and exact
To/Cc/Bcc recipients. ConnectedPolicy selects the connection and allowed targets, operations
and limits. The connection's external account declaration does not authenticate a mailbox.
| Provider | Account selection | Prepared read | Prepared send |
|---|---|---|---|
| Gmail | mailbox_id = "me"; the declared immutable Google subject remains separate. |
Bounded message-ID listing, without message bodies. | Canonical RFC MIME encoded as base64url, with optional thread and reply headers. |
| Fastmail | mailbox_id is the selected JMAP account ID, not a mailbox folder. |
Bounded query/get header and preview projection. | Exact email creation followed by submission with its sending identity, draft mailbox and SMTP envelope. |
MailRequestBuilder has two concrete implementations, GmailRequestBuilder and
FastmailRequestBuilder. Callers prepare a read or send; each implementation retains its own
identifiers, output and refusal rules. Thread-scoped reads refuse rather than widening into an
unrelated mailbox listing. JMAP does not acquire a Gmail-shaped MIME transport.
Connected preparation shows the shared native GraphStep Map and a finite WUPHF announcement. Its result contains application bytes and a provider route selector, with no account authentication or send authority. Accounts and delivery retain the later connected-operation contract.