ccmail is a quiet, focused email client for multiple accounts: Gmail, QQ Mail, 163, Outlook, iCloud and any IMAP / SMTP service, unified in a single window. The interface is drawn with native Go controls — no web frontend — and your credentials never leave this machine unencrypted.
154 messages · 3 accounts
Hi all, this week's progress: the entire UI now runs on mygo native controls — sidebar, list, reader and composer are all drawn by Go, and scrolling finally keeps up. HTML bodies go through whitelist sanitizing in an embedded WebView; scripts and remote images are blocked by default.
Two things for next week:
Details in the attachments — reply directly with any questions.
Popular providers ship preconfigured, and any custom IMAP / SMTP works too. The setup wizard connects to the server and verifies your credentials for real; accounts mount immediately and keep syncing in the background.
QQ, Gmail, 163 and friends require an app-specific password instead of your web login password — the wizard shows guidance for each provider.
No Electron, no embedded web frontend — every pane is drawn natively by Go. The overhead it saves turns into startup speed and scrolling that keeps up.
Sidebar, message list, reader, composer and settings are all painted by Go through mygo/ui — no page routing, no frontend build; HTML bodies render in an embedded system WebView.
One IMAP IDLE connection per account watches the inbox, so new mail arrives the moment it lands. Servers without IDLE fall back to polling automatically, with connections renewed every 25 minutes.
HTML bodies pass a Go whitelist first: scripts, iframes, forms and on* handlers are stripped. Remote images stay blocked by default with one-click loading, and CID images become local data URLs.
Bold, italic, underline, lists, links and paste formatting, drag-and-drop attachments and + Enter to send. Reply, reply-all and forward are one keystroke away; sent mail is archived automatically.
A unified inbox and starred views, accounts color-coded and one click away in the title bar. The list keeps loading older mail as you reach the bottom. Incremental sync via UIDVALIDITY + UIDNEXT, envelopes cached locally, bodies fetched on demand.
Desktop notifications with sender and subject — click to focus the window. Tray menu, programmatic app icon, light / dark / follow-system, and a sidebar that collapses to icons (B).
Read one, archive one, jump to the next — the actions you repeat all day each live on a single key. Search, sidebar and composing stay on your fingertips too.
Press ? in the app to see the full list at any time.
Primary buttons, selected rows, focus rings and unread badges each get their own step of gray — no single blue running through every level. On top of that, the window background offers four Oklab-tuned gradient washes, tuned separately for light and dark.
No accounts, no tracking. ccmail does one thing: deliver your mail to your inbox.
Credentials are encrypted with AES-256-GCM, keyed from your machine's data/secret.key. They exist only on your computer — never on any server.
HTML bodies are sanitized before they reach the embedded WebView: scripts, iframes, forms and event handlers are stripped. Remote images stay unloaded until you allow them.
Nothing phones home, and nothing is written outside data/. Delete the folder for a complete reset — your mail cache never leaves the machine.
GitHub Releases carries installers for macOS, Windows and Linux — or build straight from source with Go.
Installers are ad-hoc signed for now: on macOS, right-click → "Open" the first time; Windows may show a SmartScreen prompt — confirm to run.