Brian Lovin
/
Hacker News
Daily Digest email

Get the top HN stories in your inbox every day.

dima55

Last I looked there were two main local mail clients for the commandline with good emacs,vim bindings: notmuch and mu. Both store mail locally and both use xapian for efficient local searching.

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!

frutiger

> The notmuch tag database is not a standard IMAP concept

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.

0: https://www.rfc-editor.org/rfc/rfc3501#section-2.3.2

nextos

I prefer notmuch because it is extremely simple. Everything is a tag. There are no folders.

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.

rjzzleep

neomutt's main selling point was that it has first class integration with notmuch and that because that it has a unified inbox like the desktop clients.

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.

apetresc

You do it with folder-hooks. When you switch to a query that returns mail from a different account, you set a folder-hook that switches your From: address.

throwawayiionqz

Why tag anything at all? If the query is fast you may run the query again. This avoids migrating tags if the query gets modified/improved etc.

em-bee

i use tags for annotations and actions: this email i need to reply to. that one links to a story i want to read later. etc. it's not possible to search for that without tags, because those states change and don't depend on the actual emails

nextos

AFAIK, you need tags at least for read/unread.

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.

dima55

Now I'm confused. notmuch does tags while mu does not. If you do NOT need tags, then you want mu. That's the one that doesn't have tags.

mu using standard IMAP folders means it can interoperate with other mail tools. That's the biggest consideration, I think

kkfx

My personal setup involve:

- 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...

ssivark

I want to give a shout-out to “lieer” (formerly “gmailieer”) which is a nifty tool for fetching to maildir and two-way tag synchronization between gmail and notmuch: http://lieer.gaute.vetsj.com/

argulane

Thre is also a similar tool now for JMAP and Fastmail https://github.com/elizagamedev/mujmap

TeMPOraL

Gotta love the naming choice: of the two mentioned well-known CLI clients with good Emacs and Vim integration, notmuch and mu, guess which one is mujmap made for?

That's right, it's for notmuch.

kqr

This is roughly correct. There are utilities that move email between IMAP folders based on their notmuch tags, but obviously the two are different concepts so there's not a 1:1 mapping.

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.)

rawland

Up to a certain degree one can interpret the folders as tags. I think fastmail does it that way, iirc.

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

encryptluks2

This is exactly the same concept as Thunderbird and Outlook smart folders. Gmail addresses this using labels which adds metadata to the IMAP messages. IMAP folders are not reliable to tag messages as having multiple tags essentially duplicates the message on the IMAP server.

dima55

Right. How do Thuderbird/Outlook/Gmail store the tag, though? It can't be represented in any normal IMAP way, right?

ccakes

aerc is another alternative CLI mail client

https://aerc-mail.org/

ziotom78

I switched to mbsync plus notmuch-emacs a few months ago, after having been a loyal Thunderbird user for ~15 years. I had to change my workflow, but the new one is much better and I do not plan to go back.

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/

LeonM

FWIW, with Thunderbird you can easily label email priority with keys 1-9. Where 1 is the highest priority, it will mark the email in red.

So, email not read is bold, important email not read is bold red. Works pretty well for me as a backlog/todo list.

jevyjevjevs

If you want to setup Gmail/Gsuite with Mutt/notmuch, I wrote up an article on how to do so here: https://www.jevy.org/articles/neomutt-lieer-notmuch/

Hope it helps!

tomn

I used this for a while with the 'alot' frontend[0] (before work moved to a different mail system and broke my set-up). It really does live up to the claims on the home page.

If you like TUIs (especially vim) but find things like mutt to be a bit too basic or inflexible, give this combination a try.

0: https://github.com/pazz/alot

anonzzz

I use mbsync, mutt, and notmuch. The searching is superb with notmuch and the level of integration with mutt is great.

I thought this was the typical use case - reading the first few comments here…I guess it integrates well with many clients.

aidenn0

I use bower for my regular email client. It can connect to a remote machine with notmuch over ssh. It's fairly sparse on the features, but I love it.

As a bonus, it's written in a fairly niche programming language: mercury, which is a strongly typed prolog dialect.

1: https://github.com/wangp/bower

eduction

notmuch can search gpg encrypted mail, it is superb and seamless. I worked somewhere where all internal e-mail was encrypted by default and notmuch was a godsend for my productivity. It’s like using gmail over encrypted mail.

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.

pjz

Does IMAP search not give you most of this functionality? I wrote a little mh-like cli for IMAP awhile back (https://github.com/pjz/mhi) that lets me search just fine, though it's admittedly single-folder-at-a-time search. I did make it composable though (eg. `pick` returns a valid message-list`, so I can `scan $(pick from somesender)` or `rmm $(pick from knownspammer)`

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.

zadwang

Last time I checked I disliked the size of search index folders and files. So I am sticking to mairix, which integrates well with mutt and is small and fast.

ulrikrasmussen

I have hosted my own email for over 18 years and I have found notmuch quite useful, albeit not on a daily basis, but it has really proved its worth in several occasions where I just had to find a specific email. It really is very fast and will traverse your 5GiB maildir in less than a second.

lilactown

I tried using a combo of mbsync, notmuch, and notmuch-emacs to start migrating away from Gmail's UI (and eventually moving away from their service).

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?

encryptluks2

I've not experienced this. Arch Linux has a good guide on setting up mbsync. However, the best documentation is really mbsync's manual... Although tedious, really understanding it makes things a lot easier and I believe would resolve your issues.

nextos

Maybe you ran into their daily IMAP usage cap?

lilactown

That's a reasonable hypothesis. My experience was mbsync would hang for many minutes, and eventually when I revisited the terminal it was in it had failed with a nondescript error.

guiraldelli

You are definitely running in the GMail's IMAP daily limitation [1].

It took me three days to fully synchronise wuth GMail, but ince done, it takes milliseconds, now.

[1]: https://support.google.com/a/answer/1071518?hl=en

guenthert

I don't quite get the concept of local mail in the 21st century. Long gone are the times where we had exactly one computer. What good does the e-mail do me if it is local on (one of) my desktop(s), when I need it on my laptop/phone/pad?

What's wrong with IMAP?

Daily Digest email

Get the top HN stories in your inbox every day.

Notmuch – Just an email system - Hacker News