- Shipped
- November 13, 2026 at 8:13 AM UTC
- Author
- Kamo
- Commit
- c57fc3a
GET /api/email/provider takes ?from=<address>. With it, providerType is the provider that really sends as that identity (a personal Gmail/Outlook assigned to the member sends through that account; every other address through the org's provider, with PARENT_ORG walked to the real one), plus maxAttachmentBytes, maxMessageBytes, driveSource (GOOGLE_DRIVE / ONEDRIVE / null) and driveConnected:false. Without it the answer is unchanged (type/providerType stay the CONFIGURED type, so settings screens still see PARENT_ORG) and gains resolvedProviderType and the same limits. Limits are the lower of the provider's own (KamoMail: the relay's 50 MiB message_size_limit in file bytes; Gmail/Workspace 25 MB; Microsoft 150 MB per file via upload session; Exchange 10 MB; others 20 MB) and this service's multipart limits (25 MB per file, 50 MB per request). providerMax* carry the provider's own. Personal mailbox tokens (personal_mailbox_oauth_tokens) were stored and never read: **************** returns the current token, refreshing it with the issuing app when it expires within five minutes (Outlook against the consumers tenant) and storing a rotated refresh token; a dead grant sets the mailbox back to awaiting connection. DL0.2, DL0.3, DL0.5
