I am happy to announce the release of EmailViews 1.0.
EmailViews is a lightweight native email viewer for Haiku that uses live queries to help users organize and explore their emails effortlessly. EmailViews, which works alongside Haiku’s mail_daemon and Mail Kit, acts as a front end to the email files stored on disk and their attributes, so there is nothing to import or sync. Just run it and you are ready to go.
EmailViews uses a custom-built list view designed to handle a large amount of emails smoothly (during development, my testing was done with 120K emails). To that end, it uses virtual scrolling (only visible rows are drawn), a hash map for O(1) lookups on live query updates, and phased loading so recent emails appear first while older ones load in the background.
Requirements
64-bit Haiku (tested on R1/nightly builds)
At least one email account configured in Haiku’s E-mail preferences
mail_daemon running (starts automatically when email accounts are configured)
zip package for backup feature (pkgman install zip)
Usage tips
Creating custom queries: Right-click an email in the list and choose “Add ‘From’ query”, “Add ‘To’ query”, or “Add ‘Account’ query” from the Messages menu to create a filtered view for that sender, recipient, or account.
Time range filtering: Press Cmd+Shift+T to toggle the time range slider, which lets you narrow results to a specific date range.
Starring emails: Click the star column in the email list, or use the toolbar button in the reader window.
Deskbar replicant: Enable via the EmailViews menu → “Show in Deskbar”. The tray icon shows the current unread count.
Column customization: Drag column headers to reorder, click to sort. Each view remembers its own column layout.
EmailViews is localizable. If you’d like to help translate it into your language, the English catalog (en.catkeys) is in the locales/ folder of the repo. Just copy it, translate the strings, and submit a pull request. All contributions are welcome!
I need to look at why MailKit can’t send through my mail server and see if I can come up with a Haiku-ish way to get encryption support into MailKit first, though.
Sadly, since I haven’t used C++ for 20 years I expect the encryption problem is beyond me until I re-learn way more than I have so far.
I need at least signing and preferably also encrypting messages, so I’m using Icedove at the moment.
I’d very much like to be able to use Mailkit, though, so at some point I need to look through it to see how it handles decomposing multi-part messages to see if there’s an easy hook for plugging in GPG.