First off, we have to state that many people don't even use a MUA at all, but instead rely on GMail and other webmail, which runs in the browser, and the problems with modern browsers are beyond the scope of this thread; suffice it to say that I deem `modern web applications' too bloated, much like Drew Devault and others (see, i.a., [5]). (Just to be clear, this does rule out Electron-based MUAs for me.)
I used to use Thunderbird for almost forever, until I found that it had inexplicably high CPU usage every now and then (not caused by the search index, mind you), and it was a bit tedious to configure for plain-text mail [6]. Besides, Mozilla has threatened to drop this project more than once. So I tried a few other clients (such as Geary and Evolution) and switched to Claws mail.
Claws mail does have outstanding performance. But its source code was not very convincing (mixing several layers of abstraction, including GUI, in the same place). Besides, it's a GTK program.
I just can't help it — I find GTK very hard to configure: * On a fresh install, it is very well possible that some icons or mouse cursors are missing. * On some systems, I have to configure using the ini file. On others, it is some arcane gsettings thing. * You need to play around with themes for it to look decent, so good luck with the gsettings, the missing icons, and what-not once again.
Speaking of plain-text mail (as I did a few paragraphs ago), the website I mentioned [6] does list quite a few clients with textual user interface or command-line interface. I tried aerc, because it was fresh, written in Go, and because I do respect the principal author, above-mentioned Drew Devault, very much. But I found that the UX was not to my liking, and I don't quite understand why a MUA should include a terminal emulator. Or why it should be a self-contained application altogether.
This whole idea of a self-contained MUA application goes against the general UNIX-y paradigm of "no application" [7] and "choose extend over embed" [8]. Don't app me in, if I may say so.
Other MUAs, such as nhm/mmh or neatmail do in fact follow these paradigms. But their adoption seems very weak, and: * they are written in C (which is error-prone and also not the best language for quickly testing hypotheses regarding MUA design), * neatmail uses mbox, which I find rather limiting, * nmh/mmh do use Maildir, but they depend on context information (such as `current message') that they have to manage in the file system, instead of expecting the necessary information as parameters to the operations.
Now, in order to use these UNIX-y programs, I imagine (though I didn't check) one also needs dedicated programs for communicating with mail servers, i.e., for receiving and sending mail. So I read up a bit on sendmail, postfix, qmail, fetchmail, getmail, and fdm. And we seem to be treading buffer-overflow territory once again (or deprecated Python 2 in the case of getmail). I find this rather sad.
Am I missing something? Is the state of MUAs and e-mail in general really this bad/sad?
[1] https://doctorow.scribe.rip/dead-letters-73924aa19f9d [2] https://ploum.net/the-monstrosity-email-has-become/ [3] https://latacora.micro.blog/2020/02/19/stop-using-encrypted.html [4] https://words.filippo.io/giving-up-on-long-term-pgp/ [5] https://drewdevault.com/2020/08/13/Web-browsers-need-to-stop.html [6] https://useplaintext.email/ [7] http://wiki.c2.com/?NoApplication [8] http://wiki.c2.com/?EmbedVsExtend
For email automation I have written a lightweight CLI in Rust [1] which supports MIME and SMTP. I'm currently integrating sendmail's capabilities as well, so that it can be used both as a MUA (message user agent) and MTA (message transfer agent). Cargo's feature flags will hopefully give you a UNIX-like experience (only compile the features you want to use).
In general, I share your sentiment. Email is still the best protocol to contact people outside of your organization. It's a pitty that encrypted email somehow haven't prevailed. The matrix protocol might be better suited for standardized and encrypted communication.
I would argue that every citizen should get a state-issued email address which then can be used for official communication with public authorities (signing and encrypting being a prerequisite). In Germany, you still get so much paper via regular mail. Even the ten-page Covid-19 quarantine order is send by post. It only arrives when quarantine is already over. (Admittedly, you get this order by phone, too, and they are asking for your email address.)
1. They would have to install, maintain, backup and configure themselves 2. Has a reasonable web application, that, as a major perk, they don't have to install, maintain, backup and configure themselves
Due to the lack of demand for such a product, I am not surprised the existing products arn't polished/well maintained.
The idea is keep the identity registry on a blockchain, so your identity cannot be taken away from you. Messages between users are always encrypted, in transit or at rest. We also have a gateway that allows you to use the system as a regular email, and proxy server that translates our internal API (protobufs, gRPC) to the legacy email protocols, SMTP/POP3/IMAP.
>This whole idea of a self-contained MUA application goes against the general UNIX-y paradigm
I don't understand this at all, or your concerns about buffer overflows and "quickly testing hypotheses regarding MUA design." Text-based MUAs in particular are very solid and fast; find one you like and quit worrying about irrelevant issues. Or, learn Emacs and use one of the mail clients it supports (or write your own!).
—signed, former tech support for Z-Mail and text-based Z-Mail Lite
The workflow is ok. I get a large amount of email that I can just delete, and it's particularly nice to be able to select a bunch of cron emails with a regular expression.
In the last year it's become unreliable. When I move a message from one folder to another, it doesn't stay moved. I guess it's some error handling problem. I have lots of emails in some folders (10k).
I have thought about writing a driver for mutt that works directly against the Google API instead of IMAP, but writing REST code in C would be a slog.
* it should be able to work offline (with a dedicated send/receive cycle),
* it should run fine on a Raspberry Pi (out of principle more than anything),
* it should favor plaintext mail,
* it should integrate well with all kinds of workflows and platforms (such as git email),
* it should be a veritable platform for experimentation (i.e., it should be malleable).
I think the case can be made that re-inventing the wheel can sometimes be beneficial. And e-mail to me seems rather 'underexposed' (maybe because most people think it has been a solved problem since at least Gmail).
Undeniably, yes.
Personally, I still use the last real version of Eudora (7.1.0.9) along with a patch that gives it support for modern security (full TLSv1.2, LE root certs, etc).
I use it at home and at work, with over 20 years of email history in each one. I simply cannot find anything that does what it does as well...
Handles over 1 million messages with ease
Nice filtering rules
Super fast search tool
Files aren't stored in some inaccessible binary store
Keeps attachments stored externally from mailboxes
Makes it easy to manage multiple addresses & accounts
Very plain-text friendly
Has limited image/HTML support & doesn't run javascript (security though inability :) )
etc etc etc
This isn't something we can overcome with a purely technical solution. The basic ideas behind end to end encrypted messaging will eventually have to be made part of our culture.
It was a nice distraction, then I realized that I only spend a few minutes each week reading email. It's just not a significant part of my workflow, either professionally or personally.
I have had mu4e set up for about a year, but I didn't feel comfortable in it, often reverting to the web clients instead, which was miserable. Recently I spent (many) hours making it really my own, and _my god_ what an amazing experience!
I have all my accounts in the same view (if I want). I have filters for everything. I can say "follow up" with 2 keystrokes, which will open up a calendar, allow me to pick a date, then the email will be automatically archived and I will not see anything about it until that date in my org-agenda. I use org-msg to compose these Outlook-style email for work (except I can easily quote, post syntax highlighted code, even with the real results embeded, etc).
I have 2-letter shortcuts to quickly cut down to the sender domain, the email FROM: address, everything from this address sent only to me, a filter for finding everything that looks like this subject.. I even have 2 letter shortcuts to fire up a browser with this Message-ID and open it (dynamic based on account) directly in the webclient (unless you are MS [1] who for some reason uses POST for their searches. I hack around it by adding a precise query to my clipboard). I don't often use this, but it can be handy.
This is all synced using isync. I have two systemd unit files. One which does the inbox-related stuff often, and another full sync which runs every hour if I recall correctly.
Finally, since this is all locally, search is instant. And since it is in emacs, I use all my normal shortcuts and everything.
I have finally been able to achieve inbox zero, something I never have before.
It took a lot of effort to get here, but I love it. Something really amazing would have to come along to displace my workflow, and I don't see that happening. notmuch is another option, which has tags support (mu4e does not). That is the only thing I miss in mu4e. However notmuch stores the tags in a local database which is not easily shared, so for now I am super happy with mu4e. And I often capture the email in org-mode anyway, which does support tags.
Most of the config for this in on github [2] (I still have some things to commit), if you are interested.
Waiting for tags to be stored in X-headers of the email reliably..
[1]: https://answers.microsoft.com/en-us/outlook_com/forum/outlk_...
[2]: https://github.com/bergheim/dotfiles/blob/3cb1540f57f391beb2...