Skip to content

IMAP workspaces

Intermediate ⏱ 10 minutes

Connect custom IMAP servers, persist message metadata, and deliver webhooks that match Gmail and Outlook payloads.

Step 1: Authorize an IMAP account

Open the Riposte admin portal and start the IMAP authorization flow. Provide the host, port, username, and app password when prompted—the wizard tests connectivity before saving. Make sure your config has riposte.storage.imap.enabled flipped on so new accounts automatically write into the shared message tables.

TLS first

Riposte negotiates TLS by default. Only disable certificate validation for local testing and never in production.

Step 2: Choose your storage strategy

Set riposte.storage.imap.enabled to true to persist IMAP metadata in the shared message store—otherwise the API proxies calls straight to the mailbox. Decide whether to persist message bodies too by flipping riposte.storage.imap.persistBodies in riposte/sync.config.json or through the Storage tab in the admin console. Leave it false to fetch bodies on demand or enable it when latency matters more than disk usage.

Environment override

Deployments can still override these toggles with RIPOSTE_ENABLE_IMAP_STORAGE and RIPOSTE_IMAP_PERSIST_BODIES if they need per-environment switches without editing config files.

Step 3: Verify unified APIs and webhooks

Call GET /accounts/{accountId}/messages and GET /accounts/{accountId}/threads to confirm IMAP records surface alongside Gmail and Outlook. When bodies are fetched on demand the detail endpoint performs a just-in-time fetch, so clients receive the same schema either way. Webhook payloads reuse the stored data, giving you message.created and message.updated events that mirror the Microsoft and Google structures.

Historical sync parity

Trigger a historical sync to backfill older folders—the job writes batches through the same storage layer so subsequent API calls stay consistent.

Additional resources