Notmuch – Just an email system
notmuchmail.org
notmuchmail.org
When I was choosing between the two, there was one big difference between the two: notmuch was built around an idea that you mark your messages with tags for organization, while mu assumed you organize stuff into IMAP folders. The notmuch tag database is not a standard IMAP concept, so syncing your IMAP directories wouldn't sync your tags, and moving from one machine to another required extra work. mu by contrast just does the normal IMAP thing, so you sync the IMAP on one machine, and all your other machines can read the IMAP data, and that's it.
I've been using mu for years, and it's fantastic. From personal experience, the tags/folders distinction is mostly immaterial: the vast majority of searches are for text or sender or subject, or something.
If I'm misrepresenting notmuch here, somebody please correct me!
Furthermore, notmuch never ever touches your mail storage. It just operates on tags. It is up to you how to turn tag changes into actions. I find this incredibly elegant and flexible.
I do not tag things manually. I tag incoming messages automatically using searches. Since search is so powerful and quick, I do not really feel I need tags. If you do, mu or mutt/neomutt might be better suited.
I don't really use tags, but have a few searches to archive email from mailing lists without seeing it in my inbox.
For other usecases, I do as you suggested.
mu using standard IMAP folders means it can interoperate with other mail tools. That's the biggest consideration, I think
One thing I could never figure out with the folderless approach like neomutt is how to make per account compose and responses. In mutt I would set the account based on the folder I'm in and depending on what I'm responding to, but I don't know how to do that in neomutt or rather how to do it when using notmuch in neomutt.
I do use mu4e, which seems to be a bit easier to configure for multiple accounts.
This is not quite true. IMAP has a notion of “keywords”, which are arbitrary strings, that you can associate with any message.
This is described in the IMAP RFC [0]. Unfortunately, very few email web applications expose this feature in their UIs so it remains obscure.
FWIW Google Mail does store unlimited keywords on the server. So does Fastmail but last time checked (years ago) it only supported a maximum of 128 per IMAP mailbox.
That's right, it's for notmuch.
- a homeserver who grab emails from upstream and allow ssh access
- muchsync (who run over ssh) from my desktop(s)/laptop to the server
Doing so allow full sync, no need to sync mails in a maildir with other means, all you need is SSH. Sure it's not "P2P", there is still a central point of potential failure but the homeserver run many things, not just my mail so it's something I care more than the rest and it's anyway under my full control...
mu on it's side offer a nice extras (separate small binary who wrap external WebKit) to render html emails as a modern WebVM (the monsters commonly known as "browsers" for legacy reasons), while in most client (i.e. notmuch-emacs by default you just get text or shr-rendered html).
Outside Emacs I think there are one or two TUI (curses) client able to run or notmuch or mu, and a notmuch GUI (Astroid) who is not much comfy IMVHO. Notmuch also have a small external webserver with a built-in webUI but seems to be abandoned.
Unfortunately ALL use emails, almost nobody care to archive and use them on personal iron treating mails like a proprietary third party platform bound to an webmail... A day most will regret that, but still most would not learn anyway...
Edit: Checked it: Yes, they treat folders as labels/tags, i.e., they simply copy the mail into all folders/labels/tags.
See: https://www.fastmail.help/hc/en-us/articles/1500000278282
The way I, and some others I know, deal with this is to simply think of their notmuch database as separate from, but complementary to, the IMAP data. The database is stored centrally. (I personally do this by replacing the notmuch command on my clients with a shell script that runs notmuch over ssh. Works fairly transparently.)
I have always failed to regularly use TODO apps to remember stuff to do. So with Thunderbird I settled on the habit of keeping all the emails that required some action as «unread». This worked because I never fail to check my email during the workday and unread emails are easily recognizable in Thunderbird because they are highlighted in bold. However, in the end it was not optimal because not-urgent emails slowly crawled outside of the visible space in the email list, and it happened more than not that I forgot those emails.
Since I switched to notmuch, I archive every email that does not require more action on my side, with the result that my inbox looks far less cluttered and only contains those emails that still need some action. It's true that I could have used the «Archived» folder in Thunderbird for the same purpose, and for some time before switching to notmuch I even tried. But it never worked well, because when it happens that I have to recover an archived email I had to fight against Thunderbird search tools, which are quite lacking: they are quite slow and I've never understood how to run complex search queries.
On the contrary, notmuch search is awesome: powerful [1] and insanely fast.
Apart from this workflow, I'm loving the fact that I can write emails using Emacs. It's my daily driver and I have a heavily customized setup, so it's really fast for me to type new emails, copy-and-paste snippets of code, reformat paragraphs the way I want, etc.
One nice side effect of the switch is that I finally settled to dispose my old Outlook account (it's really hard to configure mbsync to use it!) and only use Gmail. The number of missed emails dropped significantly, as now I have only one email address to check.
[1] https://notmuchmail.org/manpages/notmuch-search-terms-7/
So, email not read is bold, important email not read is bold red. Works pretty well for me as a backlog/todo list.
Hope it helps!
If you like TUIs (especially vim) but find things like mutt to be a bit too basic or inflexible, give this combination a try.
I thought this was the typical use case - reading the first few comments here…I guess it integrates well with many clients.
As a bonus, it's written in a fairly niche programming language: mercury, which is a strongly typed prolog dialect.
Admittedly, this is an edge case. But if you happen to do a lot of encrypted emailing I don’t know if anything else like notmuch.
I use thunderbird for most of my email reading, and MHI for searching and scripting. I set up a cron job on an always-up machine that does periodic auto-refiling for me; it's not quite 'on receipt' actions, but it's still handy.
I found, though, that mbsync failed to download updates after the initial bulk load.
Has anyone else run into this, and/or found a good way to use notmuch with gmail?
It took me three days to fully synchronise wuth GMail, but ince done, it takes milliseconds, now.
What's wrong with IMAP?
I'd love something easily configurable that could help me tackle all the email I get with some simple rules, but I'm bound to an Outlook inbox for work.
procmail is the classic tool for this and can usually be wedged in somewhere.
From a previous comment of mine:
> Migadu is another awesome email solution. For my family and myself, we're on the "Micro" plan which works out to be 1.5 USD per month (but paid yearly). For smaller organizations and projects, we're on the "Mini" plan which is 9 USD per month.
https://news.ycombinator.com/item?id=33545326
Also another cool thing about Migadu:
> They also have a page about their pros/cons: https://www.migadu.com/procon/ [...] one of the more honest pieces of company writing out there
https://www.rfc-editor.org/rfc/rfc3501#section-2.3.2
See discussion elsewhere in the post for difficulties around tags with Fastmail and other providers.
AFAIK, Migadu supports most if not everything from IMAP. I'm using tags via Thunderbird and have no issues syncing it between multiple computers and Migadu.
> There are two types of flags in IMAP4rev1 ...
Read or not-read is recorded in '\Seen', a system flag.
My question pertains to the other kind of flag, a keyword.
> Keywords do not begin with "\". Servers MAY permit the client to define new keywords in the mailbox ...
There are docker solutions for running a full stack that can receive and send.
https://github.com/docker-mailserver/docker-mailserver#inclu...
or single services like
https://github.com/foxcpp/maddy
that appear to do everything more simply.
Adding fixed top bars and hidden pop-out side bars, etc, when they're absolutely not needed is annoying.
Incredibly so if it's done with JavaScript. You shouldn't need js to browse the web.