Only 4 more spots for the Berean (Founder) edition at $79

We're super happy with the response we've had so far from all of you.

Our founder program, Bereans, is almost at capacity for the first phase, with only 4 spots left at $79. Make sure you secure yours before we go for phase 2 at $99.

reddit.com
u/EpistlesMail — 7 days ago

Epistles 1.3.6 Released!

Fixed

  • Escape closes the composer from the message body too, not just the header fields (Windows, Linux, web).
  • A single-key search shortcut no longer types its own character into the search box (Windows, Linux, web).
  • Personal Microsoft accounts (Outlook.com / Hotmail / Live) stop constantly asking you to re-verify your login.
  • An account stuck asking to reconnect on every launch now cleans itself up (all platforms).
  • A repeating background error tied to the Apple Watch is silenced (iPhone).
  • The "SUBJECT" label in the composer no longer breaks across two lines (iPhone, iPad).
  • Multi-day events show on every day they span (all platforms).
  • IMAP mail bodies load again when the connection drops, instead of hanging and draining the battery (all platforms, most visible on the newest iOS).
  • The subject and sender in an open email use the system font (iPhone, iPad, Android).
  • Deleted Gmail messages stay deleted.
  • An email's body can no longer appear under a different email's name.
  • Read and unread mail are easier to tell apart in dark mode.
  • A CalDAV/CardDAV account set up on one computer now works on your others.
  • The address books you choose when adding a CalDAV/CardDAV account are the ones you get.
  • "Syncing…" now means Epistles is actually syncing (Windows, Linux, web, Android, iPhone).
  • An Outlook account whose sign-in expires can be signed back in (Android, iPhone, Mac).
  • A quick trackpad swipe registers on the first try (Mac).
  • The "show unread only" button in the message-list header works again (Mac, Windows, Linux, web).
  • Search stays where you left it (Mac, Windows, Linux, web).
reddit.com
u/EpistlesMail — 9 days ago

Epistles 1.3.5 Released

This version is a little bigger than we wanted but it includes several fixes.

Added

  • Epistles can now archive a message once you've replied to it. Two settings, in Settings → General, both off unless you turn them on: archive after reply and, separately, archive after forward.
  • Epistles can show 24-hour time, and start the week on whichever day you like. Settings → Appearance → Date & time now has "Time format" (Automatic, 12-hour, 24-hour) and "Week starts on" (Automatic, Sunday, Monday, Saturday). Automatic means "follow this device".
  • Your mouse's Back and Forward buttons work now.
  • The horizontal wheel on a Logitech MX Master archives an email.

Fixed

  • The hover highlight in Settings has more room to breathe.
  • Settings no longer truncates its own buttons to "Ri…" and "Bo…".
  • The search box no longer tells you to press a key your keyboard doesn't have (Windows and Linux).
  • Ctrl+F opens search, and Ctrl+K opens the command palette, they are no longer the same key.
  • Search results open when you click them, with the reading pane turned off.
  • Clicking a folder leaves the search results.
  • ESC closes any dialog (all platforms).
  • The right-click menu shows the right keys for your keyboard.
  • The "Hide sidebar" tooltip is no longer cut in half.
  • Crash reporting and reporting a problem are one place now, called "Problem Report".
  • Ctrl+Enter sends the message (Windows, Linux and the web app).
  • Emoji, accents and special characters no longer come out scrambled in mail you send (IMAP/SMTP accounts).
  • Tuta mail arrives the moment it lands, on Windows and Linux.
  • A Fastmail folder that fell too far behind now catches itself up, instead of failing every twenty seconds forever.
  • A failure at startup now tells you what happened, instead of showing a black window (Windows, Linux and the web app).
  • An empty Drafts or Trash folder no longer retries forever on Gmail.
  • Gmail stops re-listing your inbox on a loop, and mail you archived elsewhere finally leaves it (Windows, Linux and the web app).
  • A folder rebuild now removes what the server no longer has in it.
  • CalDAV calendars now actually fill in with your events, and CardDAV with your contacts (Windows and Linux).
  • A calendar/contacts account is no longer mistaken for a mail account.
  • A calendar/contacts account no longer offers you mail settings it can't honor.
  • Search is still there when the sidebar is collapsed.
  • The sidebar no longer flinches when you point at an account.
  • Times are no longer forced into American 12-hour outside America.
  • The custom snooze time picker on Android no longer insists on AM/PM.
  • The days of the week on a repeating event are in the same order as everywhere else.
  • Mac swipes commit on an ordinary flick, and don't need a pause between them.
reddit.com
u/EpistlesMail — 10 days ago

Epistles 1.3.0 released!

Improvements

  • iCloud is one account now, not two. Adding iCloud has always connected mail, calendars, and contacts from a single app-specific password — but it showed up as two separate entries in the account list (a mail account and a "DAV" account), which read as clutter at best and a bug at worst. The pair now appears as a single iCloud entry: calendars and contacts live inside the account's own settings under "Calendars & Contacts," complete with the per-calendar toggles that used to hide on the second row. Removing the account removes both halves together (the confirmation says so), and a smaller "Remove calendars & contacts" action inside the account covers the case where you only want mail.
  • iCloud calendars & contacts now announce themselves when they fail to connect and offer a Retry.
  • A single "Reading pane" setting: Right, Bottom, or Off. Settings → General now has one three-way control for where the message preview lives, instead of hunting for the two separate toggles in the list header (a Windows user rightly called the old arrangement inconvenient).
  • Choose what happens after deleting or archiving with the reading pane off. New setting next to the one above: "Next message" (the current behavior — keep reading) or "Back to list" (return to the message list, as several list-first mail clients do). Per-device, so your desktop and laptop can differ.

Fixed

  • The event list under the mini calendar now follows you when you change months (desktop calendar and the Mac menu-bar calendar).
  • The calendar no longer crushes a full month grid into a sliver on foldables and iPad portrait.
  • The text cursor is visible again in the composer's To/Cc/Bcc, Subject, and Secure Send fields on the Mac's dark themes.
  • New messages are now sent from your chosen Default account, not the first one you added.
  • A signature's plain-text version no longer leaks HTML tags into sent mail.
  • In the no-preview layout, clicking the folder you're already in now takes you back to the message list.
  • Mac swipe actions now follow your settings — left means left, right means right. With "Natural scrolling" turned on (the Mac default), the trackpad deltas macOS delivers are inverted relative to your finger direction, and the swipe code read them raw, so the configured left/right actions fired swapped on the Mac while the same synced settings worked correctly on iPhone and iPad.
  • Mac swipes activate on the first try on the message under your pointer.
  • The unread badge now simply shows how many unread emails you have (all platforms).
  • Coming back to a draft no longer adds a second signature.
  • Self-hosted CalDAV/CardDAV servers that live under a path (Baikal, Nextcloud, and friends) can finally connect.
  • A revoked iCloud app-specific password no longer strands calendars & contacts in silence.
  • Snoozing actually moves the email out of the inbox now.
  • The app no longer starts on the Unified Inbox and then jumps to a single account's inbox a few seconds later (desktop & web).
reddit.com
u/EpistlesMail — 11 days ago

Epistles 1.2.4 Released!

Added

  • Give any calendar the color you want (all platforms).
  • Bolder account colors in the unified inbox (iPhone & Android).
  • Hide the sender icons, and give each email a clearer edge (iPhone & Android).
  • Tap "unread" to see only your unread mail (iPhone & Android).
  • See each account's unread count in the sidebar (iPhone & Android).

Fixed

  • A stuck "N actions couldn't complete" over Microsoft emails you already archived (all platforms).
  • "Notify me about → Personal only" no longer silently does nothing on Proton, IMAP, and Tuta accounts (all platforms).
  • A signature you've set up now actually appears on the mail you send (all platforms).
  • The Mac app's built-in updater now actually installs the update.
  • Triaging several emails while your provider is having a moment no longer makes the app give up early.
reddit.com
u/EpistlesMail — 13 days ago

Epistles 1.2.2 Released

Small release, with mostly bug fixes.

Fixed

  • The Windows window buttons now match Windows exactly. The minimize, maximize, and close buttons in the top-right corner are drawn with the same symbols Windows uses for its own windows.
  • The Windows and Linux desktop apps no longer expose web-browser leftovers. Both desktop apps run inside a system web view, which by default carried a few browser affordances that made the app feel like a web page.
  • Unreadable light-grey-on-white emails in dark mode are now rescued on desktop and web too. Some emails hardcode a white content block but follow the reader's dark-mode hint for the text color alone, leaving pale grey text stranded on a white background.
  • No more large empty gap below the end of an email on the phone. Some emails — typically dark-styled marketing newsletters, left a big blank stretch between their last line and the bottom toolbar, as if the message were taller than its content.
  • Fewer emails cut off at the bottom on the phone. The reader re-measures an email's height as it loads, but two kinds of late growth could slip past the final measurement and leave the tail of the message clipped with nothing to scroll into.
  • iCloud contacts now show their email addresses, addresses, and labeled phone numbers. An iCloud contact synced with only its name and, sometimes, a phone number — every email address, street address, and custom-labeled phone came through blank.
  • The "Syncing…" indicator no longer gets stuck on forever.
  • The folder and label pickers no longer hide behind the email on Mac.
  • The Send Later menu lines up cleanly.
  • Archiving a Microsoft/Outlook email now works (Mac, Windows, Linux, web).
  • Opening a draft now takes you straight into the editor, in dark mode (Mac, Windows, Linux, web).
  • Email accounts no longer stall syncing on a slow or flaky connection (Gmail, Outlook, Fastmail).
  • Older Tuta accounts can now connect. Tuta accounts created before roughly 2023 still carry the previous generation of encryption keys, shorter 128-bit keys stored in an older wrapping format that Tuta's own apps quietly support forever.
  • iCloud, Nextcloud, and other CalDAV/CardDAV calendars and contacts no longer get stuck "Locked on this device."
  • Deleting a Microsoft/Outlook email from Trash no longer brings it back.
reddit.com
u/EpistlesMail — 14 days ago

Epistles 1.2.0 Released!

Added

  • Instant notifications for Proton, Tuta, and IMAP accounts (Android, Pro,Experimental) These providers offer no push service a server can subscribe to, so until now their notifications waited for Android's occasional background check. A new switch in Settings → Notifications keeps the app quietly alive in the background and holds live connections on your device: Tuta over its real-time channel, IMAP servers that support the IDLE standard over an always-open connection, and Proton (plus IMAP servers without IDLE) checked every 60 seconds.
  • Search starts in the account you're looking at — with a toggle to widen it. Search always looked through every connected account, even when you opened it from inside one specific account (a phone report put it plainly: "shouldn't there be a toggle for that?"). There is now: phones get the same All / this-account scope toggle desktop already had.
  • A Spark keymap joins the shortcut presets (Mac, Windows, Linux, web). Settings → Shortcuts now offers a Spark preset alongside Gmail, Outlook, and Apple Mail, matching Spark Desktop's published shortcuts for hands that came from there: C compose, ⇧R reply and bare R reply-all (Spark's inversion of Gmail's convention), F forward, U toggle read, D pin, G sends a message to Reply Later (the closest cousin of Spark's Set Aside), and ⌘F focuses search.
  • Turn an account's notifications off — everywhere, or on just this device. Until now the quietest an account could get was a quiet-hours schedule; there was no plain off switch, and no way to want different behavior on different devices. Each account's Notifications settings now start with two controls, free for everyone: a master switch that silences the account on every device (new mail still syncs — it just arrives quietly), and an "On this device" override On / Default / Off.
  • Pick your own quiet hours, per day (Pro). Build a weekly schedule out of quiet windows: start and end time, an "ends next day" toggle for overnight spans like 22:00–07:00, and day chips with Everyday / Weekdays / Weekends presets; add as many windows as you like. Times stay anchored to the timezone you set them in when you travel (a one-tap line re-anchors them to where you are now). Works on every platform, including inside the locked-phone notification handlers.
  • Fastmail labels now show up as chips — and can be assigned or removed without moving the message. The reading pane, thread screen, and message lists all display an email's Fastmail labels as chips, and a new picker lets you add or remove labels in place, matching the Fastmail app's own label model.
  • Nested Fastmail labels render as an indented tree, with chips showing the full path. The Move-to and Labels pickers now show nested labels ("Project A / Invoices") as an indented hierarchy instead of a flat list, and chips display the complete label path rather than just the last segment.
  • Signatures now get their own settings tab, and their own real editor. Each account's settings gain a fifth tab, Signatures (a dedicated screen on phones), replacing a cramped corner of the old panel. The editor is the same rich-text composer you already write mail in — same expandable formatting toolbar, not a stripped-down substitute, so a signature can carry the fonts, colors, and layout an actual signature needs. Paste one you built somewhere else (a signature generator, a document, another mail client) and its formatting comes across intact rather than collapsing to plain text; an Edit HTML view sits alongside the rich view for pasting raw source straight from a generator, or for a manual tweak the toolbar can't reach. Images can be inserted directly into a signature (up to 512 KB, embedded in the message rather than linked), and a plain-text version is generated automatically from the rich one for recipients or clients that want it, with a manual override if the auto-generated version isn't what you want to send. Per-identity signature choices is available.

Fixed

  • Sending a message no longer occasionally delivers only your signature with a blank body.
  • Long emails and emails with images no longer get cut off partway with no way to scroll.
  • Reply history no longer piles up in full underneath the newest message.
  • Gmail messages archived or deleted elsewhere can no longer get permanently stuck in the inbox.
  • Adding a CalDAV/CardDAV server on Windows and Linux works again.
  • Swipe-to-triage and multi-select now work by touch on iPad and touchscreen laptops.
  • Signing a device out remotely now takes effect immediately, even while the app is open on that device.
  • Mail archived or deleted in Outlook (or on another device) now disappears from Epistles too, for every Microsoft mailbox.
  • Closing the composer with the × now saves your draft instead of silently discarding it.
  • Changing one notification setting no longer quietly discards the others.
  • Emails on Windows (and Linux) now render with their actual design and the Reading font setting finally works
  • Archiving or moving a labeled Fastmail email no longer strips its other labels.
  • Tuta accounts whose encryption keys have been rotated can now sign in, and read all their mail.
  • A Tuta message deleted in another app no longer freezes sync, it simply disappears from Epistles.
  • Fastmail label chips in message lists now update instantly when you edit labels.
  • Keyboard shortcuts on Windows and Linux now read as Ctrl, not the Mac ⌘ symbol and Ctrl+Enter to send can finally be set.
  • The signature editor no longer sits on a stark white card in an otherwise dark app.
reddit.com
u/EpistlesMail — 14 days ago

Epistles 1.1.0 Released!

Changelog

New features

  • Notifications now show who wrote and what they said (iPhone & Android). New-mail notifications display the sender's picture, their Gravatar or company logo, or a colored monogram , alongside the first couple of lines of the message body, the way you'd expect from a modern mail app.
  • One-tap "unread only" in the message list (desktop). A new toggle in the list header shows just your unread messages and back again — the same filter the Quick Filter Bar already offered at ⌘⇧K, now surfaced as a button so you don't have to go looking for it. It stays in sync with the filter bar, and the two use the same underlying filter.
  • Make an alias your default sending address. Fastmail users with multiple sending addresses could pick one per message from the composer's From row, but there was no way to change which address new emails start on, it was always the account's main address. Each account's settings now list its sending addresses (Settings → Accounts on desktop, the account's detail screen on mobile) with a "Set as default" action.
  • Hide Calendar and Contacts if you keep them in other apps. Two new switches in Settings → Appearance on desktop, Settings → Mail on phones: remove the Calendar and Contacts entries from the navigation entirely: the sidebar rail on desktop and tablet, the tab bar on phones, the macOS menu-bar date tile, and calendar event reminders all go quiet. The setting is per-device, so you can keep the calendar on your phone while hiding it on your Mac. Everything mail-related keeps working: replying to event invitations from the reader, and contact suggestions when addressing a message. Flip the switch back and it's all exactly as you left it.
  • Customizable keyboard shortcuts (Mac, Windows, Linux, web). Settings → Shortcuts lets you rebind any command. Click a shortcut, press the new keys , or switch the whole keymap in one click to a preset for hands that are used to another app: Gmail, Outlook, or Apple Mail (including its real ⌃⌘A archive and ⌥⌘F search chords). Personal tweaks layer on top of the preset and survive switching (you're asked whether to keep them), conflicts are caught as you record with a one-tap "use here instead", system-reserved combos are refused, and everything resets per-command or all at once. Shortcuts are stored per device, so your Windows PC and your Mac can each keep their own muscle memory; the Command Palette always shows the keys that are actually active. One behavior refinement rides along: shortcuts no longer fire while you're typing in a text field or the composer on any platform (previously a few could on Mac and Linux/Windows), so a rebound key can never hijack typing. (This is experimental and needs more testing and feedback)
  • You'll now be notified when a new device signs in, and you can sign devices out remotely. Signing in with your email and password from a device your account has never seen now triggers an immediate email with the device's description, IP address, and time. A one-click "Wasn't you? Sign out that device" link (works once, expires in 7 days, and deliberately doesn't require signing in. Alongside it, Settings → Security gains a Devices list showing every install signed into your account, platform, name, last seen. "Sign out this device" now genuinely revokes access server-side: that device's sessions and push registrations die immediately, and it wipes its local mail and credentials the next time it contacts our servers. Sessions from app versions too old to identify themselves group into one "Unknown device" row with its own sign-out-all action.

Fixes

  • The "System" reading font now really is your system's font. Emails read with the System font choice were rendered in Arial on every platform, and on one Windows machine whose font policies blocked named fonts, the reader fell all the way through to a serif.
  • iCloud calendars are found for every Apple account. For some Apple accounts, connecting iCloud produced contacts but no calendars silently, with no error. iCloud serves calendars and contacts from different servers, and Epistles asked only the contacts server for both, whether that server also mentions your calendars turns out to vary from Apple account to Apple account. If iCloud already shows up in your account list without calendars, remove the iCloud "Calendar & Contacts" entry and connect iCloud again, your app-specific password works as before.
  • IMAP mailboxes no longer fill with duplicate copies of the same messages. When an IMAP server rebuilds a mailbox it renumbers every message inside it (an IMAP "UIDVALIDITY" change. Some hosts, like mailbox.org, do this during maintenance). Epistles correctly re-downloaded the mailbox but kept the old entries alongside the new ones, so every rebuild added another copy of every message. A rebuild now replaces the old entries instead of stacking on top of them, and a cleanup pass on the first sync of each session removes any duplicates the old behavior already left behind.
  • Reconnecting a Google account on iPhone no longer dead-ends on Google's "Access blocked: Authorization Error" page. The in-place Reconnect flow on iOS sent Google an outdated redirect address, which Google rejects with "Error 400: invalid_request". Adding the account fresh worked, but Reconnect never could, and every retry hit the same wall. Reconnect now uses the Google-approved address scheme (the same shape Android has always used), so it completes normally.
  • Accounts stranded as "Locked on this device" now repair themselves. When a device's stored credentials for an account were lost or corrupted, a failed first sync, database damage, and notably a password reset (which by design wipes locally-stored credentials), the account sat "locked" and the only way out was removing and re-adding it by hand. For Gmail, Fastmail, and Microsoft accounts the server still holds working sign-in material, so the app now restores such an account automatically, including whether it's a mail or calendar-only account, instead of stranding it.
  • Clear messages when Tuta blocks a sign-in. Too many Tuta sign-in attempts in a short window, or attempts from a shared or VPN network, trip Tuta's own rate limiter, and the app used to surface the raw wire error ("Tuta service POST sys/sessionservice failed: HTTP 429 (Error-Id: …)"). It now explains the temporary block and that waiting a few minutes clears it, a lockout after repeated failures is described as such, and a wrong password simply says so instead of showing an HTTP code.
  • Signing in to a Tuta account with two-factor turned on now works. With two-factor enabled, Tuta shows an "allow login from 'epistles'?" prompt on your other signed-in Tuta client, but the app wasn't waiting for you to approve it, so the sign-in appeared to hang and nothing happened after you tapped OK there. The sign-in screen now tells you it's waiting for approval and completes on its own the moment you approve the login from the Tuta app or tuta.com.
  • Custom swipe actions save reliably again. Assigning a swipe to one of the newer actions Move, Reply, Mark as junk, Pin, or Mark unread, looked like it wouldn't stick: the choice saved on the device but was rejected when syncing to your account, then snapped back to its previous value on the next sync. Syncing now accepts the full set of swipe actions, so any assignment sticks and carries across your devices.
  • Turn on Face ID / Touch ID app lock on iPad. The setting to lock Epistles behind Face ID or Touch ID was only reachable on iPhone, on iPad the option was missing entirely, even though the lock itself worked once enabled. iPad now shows the same "Lock with Face ID / Touch ID" toggle under Settings → Security.
  • Proton sign-in with two-factor no longer dies with a captcha error right as the code prompt appears. Solving Proton's puzzle challenge triggered the sign-in twice behind the scenes (Proton's verification page announces one solved puzzle in two different message formats, and Epistles acted on both). The first sign-in succeeded and opened the two-factor code prompt; the duplicate then failed , a solved puzzle is only redeemable once, and its failure slammed the prompt shut with a captcha error a moment after it appeared. One solve now counts exactly once, so the code prompt stays up and sign-in completes.
  • IMAP accounts whose sign-in is a username instead of an email address can now be added. Some mail hosts (Codamail, various company servers) require signing in with a bare username "john", not "john@example.com". Epistles rejected these accounts at the final registration step with an unhelpful "backend response status=400", even though the mail server connection itself had already succeeded.
  • Messages read or deleted in another app now show as read for every Microsoft mailbox. Some Microsoft mailboxes answer the standard change-polling protocol with "no changes" forever. For those, Epistles already had a fallback that catches newly-arrived mail, but a message you'd read in Outlook or on your phone stayed unread in Epistles indefinitely (one report: constant unread badges across three devices). The fallback now also compares the read state of the most recent inbox messages against the server on every sync pass, so cross-device read/unread changes come through for these mailboxes too. Older messages square up on the next full account refresh.
  • The "Syncing N accounts…" status no longer sticks forever. Whenever a sync pass was interrupted, switching away from the app mid-sync, the phone suspending Epistles in the background, the interrupted account was left permanently counted as "syncing", so the indicator never went away (and the N differed per device, tracking however many accounts had been interrupted there). Interrupted passes now correctly return the account to idle; the indicator only shows while sync work is actually running. This also removes a Windows-only workaround that hid the indicator after 20 seconds. It's now accurate everywhere instead of hidden.
  • Proton messages that can't be decrypted no longer retry forever. A Proton message whose body fails to decrypt (for example, one encrypted to a key this device doesn't have) was refetched in an endless loop. Dozens of requests per second against Proton's servers, wasting battery and bandwidth for nothing. After a few attempts the app now leaves the message alone for the rest of the session; opening it still triggers a fresh attempt.
  • Connecting an account on Linux and Windows no longer gives up silently. Connecting a Google, Fastmail, or Microsoft account signs you in through your web browser, which then hands control back to the app. If that hand-back never arrived, a slow two-factor prompt, a browser that blocks app links, a consent screen left sitting past five minutes , the app quietly abandoned the wait and showed nothing, which users reported as "I allowed all permissions and nothing happens." The app now says plainly that the sign-in didn't return and to try connecting again, and the support log records each step of the browser hand-off (browser opened, callback received or not), so a stuck connection is diagnosable from a problem report instead of invisible.
  • Swipe labels no longer pile on top of each other mid-swipe (phones & tablets). Dragging a message past the point where the short action hands over to the long one, say Read giving way to Snooze, used to cross-fade the two labels across almost half the row's width, leaving both words legible on top of each other over a muddy blend of the two action colors.
  • iCloud and other password-based accounts no longer get stuck refusing to send with "Account is locked." Removing and re-adding an account could leave your device and our server holding different internal ids for the same mailbox, a legitimate state the sync layer handles fine, but a background health check misread it as a dead account on every launch and quietly switched off sending, while incoming mail (which catches up at each launch) kept looking normal, making the failure inexplicable. The health check now recognizes the state as healthy, so sending recovers on its own after updating.
  • Swiping to the next message in the reader no longer crashes the app (Android). Swiping between messages in the reader could kill the app outright with a native animation-engine error; the same latent fault was found and fixed in the account-reorder drag handle before it bit anyone.
  • The Move button explains itself instead of playing dead (desktop). On a Gmail account with no user-created labels there is nowhere to move a message to. Gmail's labels are its folders, and the toolbar's Move button silently did nothing, which reads as "the app is broken."
  • Sender and recipient searches list newest first. A search made only of filters from:joe@example.com, or in:sent to:joe@example.com for "everything I've sent him" now returns results newest-to-oldest, the way filtered mail is expected to read. Searches containing words keep the relevance ranking.
  • A damaged search index repairs itself instead of breaking search and account removal. The full-text search index lives in its own database file; if that file was corrupted (an interrupted write, a bad shutdown), search errored on every query, and worse, removing an account could fail outright, because its cleanup step tripped over the unopenable index. A corrupted index is now detected at open, wiped, and rebuilt automatically (results repopulate as your mail re-indexes), and account removal treats search cleanup as best-effort.
u/EpistlesMail — 15 days ago
▲ 36 r/NewtonMail+6 crossposts

Epistles Mail 1.0 is now available!

After months of testing, with hundreds of users signed up as beta testers and constantly providing feedback and bug reports, we are proud to announce that version 1.0 of Epistles Mail is officially released! No more waitlist, we are now open to the public!

Epistles is a full featured, modern and cross platform email client, that natively supports Gmail, Office 365, Fastmail, ProtonMail, Tuta Nota, JMAP and IMAP. All done using the providers API's, never using IMAP except for real IMAP-only accounts.

Forever free for up to 2 accounts, or unlimited Pro tier for just $35 per year, that adds encryption, open mail notification, per-account notification rules, Secure Send (encrypted emails opened through a link with password), and much more.

The first 100 users to sign up can opt for the Bereans Edition, a lifetime plan that you pay once and have all the Pro features forever, for just $79.

https://epistles.com

u/EpistlesMail — 16 days ago

Version 0.99.20 released!

Fixes

  • Foldable / iPad multi-pane glitches fixed. Three issues in the 2-pane (list + full-column reader) layout used on unfolded foldables and iPad portrait: opening the app no longer lands on an empty "Choose a conversation" screen you had to tap Back to escape (a message reader left open in a previous session, or carried across a fold, now falls back to the message list when there's nothing to show); tapping a message that hasn't finished loading now opens it instead of only highlighting it; and the search box's recent-searches menu no longer appears already-open after unfolding or resizing.
  • Update notifications on iPhone and Android phones. On Android, the phone app now actually runs Google's in-app update flow. When a new version is on the Play Store it downloads in the background and offers a "Restart to install" tap, no Play Store visit needed.
  • Automatic updates on macOS and Windows. Thirty seconds after launch (never sooner, startup stays instant) the app quietly checks for a new version and, if one exists, offers it in a dialog. One click downloads the signed update with a progress bar, closes the app, installs, and reopens it. macOS installs through Sparkle (the update is verified against both our signing key and Apple's notarization before anything runs); Windows through the built-in Tauri updater (signature-verified NSIS). Declining waits until the next launch; if anything fails, the app falls back to opening the download page. Linux keeps the download-page flow for now.
  • Threaded conversations in the unified inbox (desktop / iPad multi-pane). Unified views now group messages into conversations the same way single-account folders do, per account, so provider conversation ids never mix across accounts. Follows the existing threading settings, including per-account overrides: an account with threading turned off keeps flat rows inside the same unified list. Inline expansion, shift/cmd selection, select-all, keyboard navigation, and bulk actions all work across accounts, a multi-selection spanning accounts archives or deletes each conversation against its own account.
  • Clicking a mailto: link now opens a pre-filled compose on macOS. With Epistles set as the default email client, an email link brought the app to the front but silently dropped the address — no compose window. The app now parses the link (recipients, cc/bcc, subject, body per RFC 6068) and opens Compose with the fields filled, both while running and on a cold launch from a link.
  • "Make default" on macOS now walks you through the one step Apple actually allows. The App Sandbox forbids apps from changing the default email client themselves, so the button could never succeed — it either did nothing visible or opened a System Settings page that has no default-email option. Clicking it now shows a dialog explaining the real switch (Apple Mail → Settings → General → "Default email reader") with a button that opens Apple Mail directly. The app also refreshes its Launch Services registration on the attempt so it reliably appears in that dropdown.
  • Recurring meetings no longer drift by an hour across daylight-saving changes. A recurring meeting whose timezone observes daylight saving time — for example a weekly meeting hosted in US Eastern time — was shown and reminded one hour off for the stretch of the year on the other side of a DST change from when the series began. Each occurrence is now resolved in the meeting's own timezone, so the calendar, the reminder notifications, and the meeting-invite cards all show the correct local time year-round. Meetings in zones without daylight saving (such as Brazil) and all-day/UTC events were never affected.
  • Swiping to archive or delete is smoother right after you open the app (iOS / Android). The swipe gesture briefly lagged your finger during the busy moment just after launch; it now runs independently of that startup work, so the row tracks your finger smoothly from the very first swipe.
  • Quarter and Year calendar views render correctly (desktop). The small month grids in the Quarter and Year views showed overlapping, unreadable weekday initials and run-together day numbers when squeezed into their columns. They now use single-letter weekday labels and lay out cleanly at any window width.
  • Linux and Windows report a single, correct version number. The desktop apps listed the app version as an unrelated internal web-build counter while the build number showed the real release, so a problem report carried two mismatched versions. Both now report the actual release version.
reddit.com
u/EpistlesMail — 17 days ago

Google has approved Epistles and Gmail is back on the menu!

After going through a full third-party security evaluation required by Google to allow us to use their Gmail "sensitive scopes", which are necessary for a full e-mail client to properly use Gmail API, we are happy to announce that last night Google fully approved us.

What that means is we can have new users signing in to their Gmail accounts natively, without using IMAP, and using all email features.

That also means that Epistles 1.0 should be released any day now. Please update your apps to the latest Epistles version available (0.9.20) and submit any remaining bugs you can find so we can have a clear cut for 1.0.

reddit.com
u/EpistlesMail — 17 days ago

Version 0.99.15 released with several improvements

[0.99.15] - 2026-07-06

First release with Tuta Mail support, plus a large stabilization wave driven by user problem reports. Includes fixes that missed earlier 0.99.x builds.

Added

  • Tuta Mail accounts - sign in with your Tuta address and password: encrypted mailbox sync, reading, sending, folders, and attachments, with all decryption happening on-device. Credentials live in the OS keychain and re-login material syncs through the zero-knowledge Cloud Vault. The first sign-in on a device runs the full Argon2 key derivation once; later launches unlock instantly from a per-device key cache.
  • Send-as aliases for IMAP / iCloud — send from a custom-domain alias: pick the From address in the composer, manage aliases in account settings. The SMTP envelope stays on the authenticated account so DKIM alignment holds.
  • Reading-pane layout toggle - cycle right split / bottom split / list-only from the message-list header. Narrow touch windows skip the right split rather than offering a mode that can't render.
  • Report a problem without an account - the problem-report form is now reachable from Onboarding and the iCloud/IMAP credential screens, so users stuck before connecting an account can still reach us. Signed-out reports go out anonymously and require a reply-to address.
  • Added full support to iPad - now the app is no longer stretched out on iPads, but instead provide the same multi-panel view available on the desktop version.
  • Added support to Foldable phones - now we have multi-pane views in foldable phones just as in the desktop app.

Fixed

Message rendering

  • Marketing emails no longer render with overlapping, unreadable text - Outlook-only CSS hidden inside conditional comments was being activated by the style hoister; comments are now stripped before styles are lifted.
  • Very tall HTML emails on Android are no longer cut off at the bottom. The message WebView now scrolls internally past the GPU texture ceiling.
  • Inline images in replies - unresolved cid: images render as an invisible pixel instead of a broken-image icon (the fallback PNG had a corrupt chunk), and quoted signatures reuse the images the reading pane already resolved instead of re-downloading.
  • Gmail conversations no longer split when a reply arrives with a localized subject prefix (Italian "R:", German "WG:", …) or a mid-thread rename — threading now trusts the References/In-Reply-To chain alone, matching Apple Mail/Outlook semantics.

Proton

  • "Proton keeps signing out" fixed - the app burned a single-use refresh-token rotation on every cold launch, so any lost rotation (dropped response, missed keychain write) permanently killed the session and forced a re-login. Restore now uses the stored session as-is, rotates only when a request actually needs it, and retries the keychain write after every rotation.
  • Dead Proton sessions surface one Reconnect prompt instead of retrying a spent refresh token forever.
  • 2FA accounts no longer lock on every cold boot - the keyring unlocks offline from cached encrypted key material when Proton's keys/salts endpoint is gated behind interactive auth.
  • Folder management for Proton and Gmail - create/rename/delete folders now works from the sidebar for both providers (Proton custom folders, Gmail labels).

Microsoft / Outlook

  • Sending from consumer Outlook (outlook.live.com) no longer fails - consumer Substrate rejects a client-set InternetMessageId, it's now omitted for personal accounts.
  • Reconnecting a personal Outlook account on a synced device uses the personal-account flow instead of erroring with "personal accounts are not valid" (account type now derived from the vault-synced OAuth config).
  • Microsoft token refresh moves to server-mediated rotation on re-auth - the backend refreshes reliably where device-side refresh failed intermittently on flaky networks.

IMAP

  • "QRESYNC not enabled" sync failures fixed - VANISHED is only requested once QRESYNC is actually enabled on the connection, not merely advertised by the server.
  • Encoded subjects and names display correctly in the message list (RFC 2047 encoded-words are decoded).
  • Dropped connections re-authenticate instead of failing every sync with "BAD: Please login first" after a silent TCP reconnect.

Calendar

  • All-day events can be created on Stalwart and other JMAP servers - event start times are sent as full date-times per RFC 8984.
  • Accepting a Google Calendar invite works when mail and calendar live on different accounts ("participant is neither organizer nor attendee" error fixed).
  • iCloud calendar onboarding on macOS — "Sync N calendars" no longer silently does nothing (UUID generation crash on React Native fixed).

Sync, push & outbox reliability

  • macOS Fastmail reconnect storm fixed - flaky networks caused hundreds of SSE reconnects per day ("app is insanely slow"), the backoff no longer resets prematurely.
  • Gmail push self-heals after repeated stream closes instead of staying dormant until the app restarts.
  • A hung send can no longer wedge the Outbox - read-receipt pixel requests are time-boxed, and every send has a hard timeout, so one stalled message doesn't block the queue.
  • Your own sent messages no longer trigger new-mail notifications - Sent-folder copies (including send-as aliases) are recognized and suppressed.
  • Notification Delete/Archive actions no longer silently do nothing when one broken account can't resolve its folders - queued actions now dispatch per-account instead of waiting on every account to be ready.

Android

  • Attaching photos from the gallery works — the document picker returns content:// URIs that couldn't be read directly; they're now copied to a readable file before attaching.

macOS

  • Typing a space in "Report a problem" no longer drops focus — react-native-macos synthesizes a button-press from space/Enter keystrokes and re-dispatched focus to the wrong native view on multiline inputs; fixed via a vendored patch (patches/react-native-macos).
  • ⌘N / ⌘R / ⇧⌘R / ⇧⌘F work while an email body has focus — the message WebView no longer swallows menu key equivalents.
  • Some messages showed an empty body — text-encoding tables are now bundled, unblocking the decoder they wedged.
  • Copy buttons work in the message Headers and View Source dialogs on native (previously web-only), and the crash screen's "Copy diagnostics" now works on every platform.
  • Inserting a link in the composer lands at the caret instead of a stale position after the link dialog steals focus.
  • IMAP accounts are no longer mislabeled "Calendar only" in account lists.

Web

  • Signup verification emails consistently use 6-digit codes — the web app now reports a proper client version to the backend.

reddit.com
u/EpistlesMail — 18 days ago

Third-party client with Tuta support is coming

We are happy to announce that Tuta Nota native support is coming to Epistles Mail, meaning you'll be able to have your Tuta email alongside company emails, proton, gmail, IMAP, and whatnot, all in the same app. Think "Newton Mail, but it speaks every provider's native protocol and runs everywhere."
One app across iOS, Android, macOS, Linux, Windows, and web, from a single codebase.
Unified inbox, snooze, send-later, triage swipes, calendar, per-account notification rules.

Instead of forcing everything through lowest-common-denominator IMAP, each provider gets a real adapter: JMAP for Fastmail, the Gmail API for Gmail, Proton's protocol for Proton, and so on. It's local-first: your mail lives in an encrypted database on your device, and a lightweight relay only handles push notifications and a zero-knowledge settings vault. The relay never stores your email content.

If you want to follow along or kick the tires when the Tuta adapter lands, the waitlist is at https://epistles.com.

u/EpistlesMail — 22 days ago

Version 0.99.0 released

We are getting closer and closer to the big 1.0. Multiple fixes and changes that came through the feedback of our users. Y'all have been great, thank you for all the messages and reports.

We are in the last stages of Google certification, which will unblock new sign-ins using Gmail accounts, in the mean time you new Gmail users can use IMAP, which we know is not ideal, but should be another week or so.

reddit.com
u/EpistlesMail — 25 days ago

Version 0.9.19 released!

Thanks to a lot of feedback we received in the last couple days, we were able to identify and fix several bugs related to crashes, ProtonMail locks, IMAP and JMAP.

In addition to that, we are happy to announce that Outlook/Hotmail/Live.com personal email accounts are now fully supported.

We also made a lot of improvements to the Windows app.

reddit.com
u/EpistlesMail — 1 month ago

Version 0.9.16 released!

We've received A LOT of positive feedback, bug reports and feature requests. It's been amazing, thank you all!

Today we're releasing Epistles 0.9.16 with the following fixes:

  • Fixes compose crashes when replying or forwarding
  • Threading toggle on mobile now works; per-account overrides stick after restart
  • Cleaner mobile inbox: collapsible frosted tab bar, upright timestamps, centered list on wide screens
  • Microsoft 365 calendars show provider colors
  • Settings modal closes reliably over an open composer

And these are the new features:

  • Color accent per account in unified inbox
  • Unified Inbox can now be the default inbox across devices
  • Dark mode for emails

As always, the latest builds are available at https://repos.epistles.com

iOS is pending Apple's review. Probably available later today or tomorrow.

reddit.com
u/EpistlesMail — 1 month ago

New version 0.9.14 available now!

We fixed issues with Proton asking to re-authenticate and issues on the Windows app.
Linux builds are also available again, for ARM or x86_64.

If you find any issues, in the Settings menu, under Security, there is an option for you to send a problem report and include diagnostic logs. Those are really helpful for us to identify and fix bugs quickly.

reddit.com
u/EpistlesMail — 1 month ago