Orbit Mail
Orbit Mail is your self-hosted webmail, layered on top of the Postfix + Dovecot + Rspamd container stack that already ships with Server Mode. Per-user mailboxes auto-provision the moment you visit Mail; native IMAP / SMTP clients (Apple Mail, Thunderbird, Fastmail-style apps) continue to work in parallel.
This is the second app in Quazzar Workspace, alongside Drive. Available on every plan; the container stack itself is the only thing gated (Pro+).
What you get
- Three-pane web UI — folder sidebar (Inbox / Sent / Trash + your custom folders), paginated message list, full-message reading pane.
- Auto-provisioning per Quazzar user — your username on this server becomes
<username>@<base_domain>on first visit. No per-user admin step. - Compose & send through the local Postfix submission port (587, localhost). The
Fromheader is locked to your Quazzar identity — no spoofing. - Sandboxed HTML rendering — incoming HTML mail is shown inside an
<iframe srcdoc>withsandbox="allow-popups"(no scripts, no same-origin). Plain-text fallback always available via a tab toggle. - Read/unread, move-to-trash, attachment download — covers the day-to-day inbox flow.
Enabling the mail stack
Mail requires the Postfix + Dovecot + Rspamd containers, which add ~80 MB resident memory. If you’re on a 1 GB node, weigh that cost first.
To enable:
- Open Server Mode → Mail → Enable mail stack. Set your
domainandhostname. Quazzar generates a DKIM keypair for you. - Wait ~30 seconds for the containers to come up; status flips to Running.
- (Recommended) Add the SPF / DKIM / DMARC TXT records the panel suggests so outbound mail isn’t flagged as spam by recipients.
- Open
/mail. Your mailbox<username>@<domain>provisions automatically on the first request.
Sending mail reliably
Pure self-hosted outbound is a deliverability minefield in 2026. We strongly recommend pairing the local stack with a smarthost (SES, Postmark, Mailgun, SendGrid). This keeps the storage and identity local while delegating the “is this IP trusted?” problem to a reputable upstream:
- Open Server Mode → Mail → Outbound relay.
- Pick a provider, paste the smarthost host:port + credentials.
- Send a test message — Postfix routes via the smarthost; recipients see your domain in the
From:header but the trusted relay’s IP at the SMTP level.
This is also our recommendation for residential ISPs that block port 25.
Mounting in Apple Mail / Thunderbird / etc.
Even though the webmail handles day-to-day reading, the same mailbox is reachable over standard IMAP/SMTP. Use these settings:
| Setting | Value |
|---|---|
| IMAP host | <your-quazzar-host> |
| IMAP port | 993 (TLS) or 143 (STARTTLS) |
| SMTP host | <your-quazzar-host> |
| SMTP port | 587 (submission, STARTTLS) |
| Username | <quazzar-username>@<domain> |
| Password | The password the panel showed you when the mailbox was minted (Server Mode → Mail → Mailboxes → Reveal password) |
API
Every webmail action is also a REST endpoint, so you can script anything:
GET /api/mail/status—{enabled, provisioned, address}.POST /api/mail/provision— force-provision (used by the empty state CTA).GET /api/mail/folders— list IMAP folders.GET /api/mail/inbox?folder=INBOX&limit=50&offset=0— paginated envelopes.GET /api/mail/messages/{folder}/{uid}— full message body.POST /api/mail/messages/{folder}/{uid}/flag—{flag, set}.POST /api/mail/messages/{folder}/{uid}/move—{dest}.POST /api/mail/send—{to, cc, subject, body_text, body_html, in_reply_to}.GET /api/mail/messages/{folder}/{uid}/attachments/{part_id}— stream an attachment.
All session-authed via the standard JWT cookie / bearer.
What’s not yet there
- Search across messages — coming in a follow-up.
- Drafts — compose-and-send only in MVP. IMAP APPEND wiring lands next.
- AI triage (categorisation, summarise thread, draft reply) — phase Б of the roadmap. The hooks are wired; the UI is pending.
- Sieve filters — server-side filtering rules. Coming alongside search.
- Inline attachment rendering — MVP shows attachment list and download button.