- Kotlin 94.4%
- Java 5.5%
Sterna Mail logo
Sterna Mail
All your mail. None of the baggage.
A fast, private JMAP email client for Android, fluent in classic IMAP/SMTP too.
No ads. No tracking. No Google. ✨
CI Latest release License: GPLv3 Support on Ko-fi
Sterna Mail is open-source and built for JMAP, the new and faster internet standard for email, with full support for classic IMAP/SMTP too. Just your mail, on the server you choose.
Named after Sterna, the genus of terns 🐦 — the Arctic tern flies the longest migration of any animal, carrying itself clear across the world and back every single year. We liked the idea of mail that travels light and always finds its way home.
Status: 1.0, and shipping. Sterna is a complete, daily-drivable email client: read, organise, search, write, schedule, and send mail (with attachments) over JMAP or IMAP/SMTP, across multiple accounts, fully offline-capable, with push notifications and remote content blocked by default. Hit a rough edge? Please tell us about it!
📸 A look
| Inbox (light) | Inbox (dark) | Reading | Compose | Appearance |
|---|---|---|---|---|
| Inbox, light theme | Inbox, dark theme | Reading a message | Composing | Appearance settings |
Light "Arctic" and dark "Pelagic" themes, a calm sea-teal accent with a warm coral touch — the tern's beak. 🪸
📲 Download & install
There's no app-store listing yet, but you can grab the latest APK today:
- ⬇️ Download the latest APK (under Assets).
- Open the downloaded
.apkon your phone. Android will ask whether to allow installing apps from this source — accept it for your browser or file manager. - Tap Install, then open Sterna and add your account. 🎉
i️ Releases are signed with Sterna's own key, the same one the future F-Droid build will use, so updates install cleanly over each other. No Google account or app store needed, ever.
Prefer to build it yourself? See CONTRIBUTING.md.
🤔 Why JMAP?
Most email apps talk to your server using an old protocol called IMAP. JMAP is its modern successor: it syncs faster, uses less battery and data, and was designed for today's phones. Servers like Stalwart speak JMAP, and Sterna is built to make the most of it. ⚡
Sterna also speaks classic IMAP and SMTP, so it works with any standard mail provider — pick the protocol when you add an account, or just type your email and let autodiscovery find the server for you.
💚 What Sterna stands for
- 🔒 Privacy first. No tracking, no ads, no analytics, no Google services. Remote images and tracking pixels are blocked by default; tapped links can be stripped of tracking parameters and confirmed before opening.
- 🆓 Free and open. Licensed under the GPLv3 — anyone can read, audit, and improve the code.
- 🎨 Modern and calm. A clean, fast Material 3 interface with its own brand identity that follows your phone's theme and language.
✨ Features
📥 Reading & organising
- Unified inbox across multiple accounts (JMAP and/or IMAP/SMTP), fully offline (local cache); large folders page in as you scroll, fetching older mail from the server
- Conversation view — threads collapse into one row with a message count
- Nested folders shown as a collapsible tree; create / rename / delete, plus subfolders
- Configurable swipe actions, flag/star, archive & delete with undo, multi-select bulk actions, snooze, report spam, empty trash (with undo), sort and unread-only filter
- Search-as-you-type (server-side + instant local results) with advanced filters (from, subject, has-attachment, date)
- Calendar invites preview as an event card; one tap adds them to your calendar app (no calendar permission needed)
✍️ Writing & sending
- Compose with recipient chips + autocomplete and email validation, multiple identities each with its own signature, attachments, and drafts
- Undo send, schedule send (with a screen to view/cancel pending sends), and "forgot attachment?" / large-recipient-list reminders
🔑 Accounts & setup
- Add an account with just email + password (
/.well-known/jmapautodiscovery), password-free OAuth 2.0 sign-in (device flow), or manual IMAP/SMTP with provider presets; a "test connection" button before saving - Per-account colour, sync window, and notification toggle; encrypted credential storage (AndroidKeyStore); app lock (biometric / PIN)
🔒 Encryption
- OpenPGP (via OpenKeychain): read and send signed and/or encrypted mail (PGP/MIME) on both JMAP and IMAP/SMTP. Decrypted content is never written to disk. See the encryption guide to get started.
🔔 Notifications & server power
- Push for new mail with no Google / FCM (JMAP EventSource or IMAP IDLE), grouped per account, with quiet hours
- Server-side vacation responder and Sieve filter rules, mailbox quota display
🎨 Polish
- Sterna's own Arctic (light) / Pelagic (dark) palette, optional Material You, adjustable message text size, settings export/import, a screen-reader-friendly UI, and coastal empty-state illustrations
The full, tracked feature set lives in FEATURES.md.
🛠️ Planned: home-screen widgets, S/MIME, and more.
🌍 Languages
Sterna's interface is fully translated into nine languages:
🇬🇧 English · 🇫🇷 French · 🇩🇪 German · 🇪🇸 Spanish · 🇮🇹 Italian · 🇵🇹 Portuguese · 🇳🇱 Dutch · 🇷🇺 Russian · 🇵🇱 Polish
It also respects your system language out of the box, and you can override it per-app in Settings → Appearance.
👩💻 For developers
Architecture and build instructions live in ARCHITECTURE.md and CONTRIBUTING.md. The planned and shipped feature set is tracked in FEATURES.md. Contributions, bug reports and ideas are very welcome. 🙌
☕ Support
Sterna is free and open, and always will be. If it's useful to you and you'd like to help fuel its development, you can buy me a coffee on Ko-fi . Entirely optional — thank you for even considering it. 💚
🙏 Acknowledgements
Sterna's interface is freely inspired by K-9 Mail (now Thunderbird for Android), the venerable open-source Android mail client. Many of its interaction patterns — the way you swipe, triage, and read your mail — are the fruit of years of work by the K-9 community, and Sterna is better for standing on their shoulders. Heartfelt thanks to the K-9 / Thunderbird for Android developers for building, and freely sharing, such a fine app. 💚