LWN: Comments on "The notmuch mail client" https://lwn.net/Articles/362284/ This is a special feed containing comments posted to the individual LWN article titled "The notmuch mail client". en-us Wed, 15 Oct 2025 07:08:32 +0000 Wed, 15 Oct 2025 07:08:32 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net The notmuch mail client https://lwn.net/Articles/363797/ https://lwn.net/Articles/363797/ xoddam <div class="FormattedComment"> <font class="QuotedText">&gt; we've run into a lot of problems with heavily multithreaded access to sqlite.</font><br> <p> Try delegating writes to a dedicated thread (per db handle) and allowing only read access from other threads.<br> </div> Wed, 25 Nov 2009 23:12:25 +0000 Language wars https://lwn.net/Articles/363627/ https://lwn.net/Articles/363627/ Baylink <div class="FormattedComment"> I call your attention to the Go! wars, in another thread.<br> </div> Tue, 24 Nov 2009 20:35:31 +0000 Interpreted and compiled languages https://lwn.net/Articles/363354/ https://lwn.net/Articles/363354/ rwmj <div class="FormattedComment"> Python is a really poor example. It's slow and uses loads of memory.<br> <p> Look at a real, static, compiled language with type inference. The current leaders in this area are all <br> functional languages. FWIW I started writing something similar to notmuch/sup in OCaml (a few <br> months ago, and without knowing about sup -- I'll probably abandon it for something better <br> supported now like notmuch).<br> <p> Rich.<br> </div> Sun, 22 Nov 2009 23:56:13 +0000 The notmuch mail client https://lwn.net/Articles/362948/ https://lwn.net/Articles/362948/ endecotp <div class="FormattedComment"> I was subscribed to an IMAP list at one time but didn't discuss this much; my opinion of IMAP is rather low but I'm too polite to jump into someone else's list and tell them what I really think...<br> <p> There are certainly mismatches between IMAP and SQL. For example, anything that implements virtual folders on the server will have to try hard to make the IMAP message sequence numbers work right. To be honest, I have been using Decimail for about five years and it "just works" for me, and I have now forgotten (or blocked the memories!) of the implementation challenges.<br> <p> Phil.<br> </div> Thu, 19 Nov 2009 23:27:57 +0000 The notmuch mail client https://lwn.net/Articles/362710/ https://lwn.net/Articles/362710/ krake <div class="FormattedComment"> It is somewhat similar but then also quite different.<br> <p> Akonadi's server access protocol is similar to IMAP in terms of syntax and<br> grammar. Contents of commands and responses can be different and there are<br> additional commands for things usually not found in IMAP.<br> <p> As far as I can tell there is also a different usage pattern for the<br> database, i.e. permanent storage vs. transient storage (Akonadi uses its<br> database mainly for caching, potentially only of parts of items, e.g.<br> envelope of mails).<br> <p> <p> </div> Thu, 19 Nov 2009 12:18:49 +0000 The notmuch mail client https://lwn.net/Articles/362646/ https://lwn.net/Articles/362646/ lysse <div class="FormattedComment"> The arrogance of rank ignorance is petegn's special gift to the world.<br> </div> Thu, 19 Nov 2009 05:54:34 +0000 The notmuch mail client https://lwn.net/Articles/362590/ https://lwn.net/Articles/362590/ bojan <div class="FormattedComment"> <font class="QuotedText">&gt; You don't like Thunderbird?</font><br> <p> No support for Exchange. Cannot edit LDAP address books, AFAIK.<br> </div> Wed, 18 Nov 2009 23:23:57 +0000 The notmuch mail client https://lwn.net/Articles/362585/ https://lwn.net/Articles/362585/ aleXXX <div class="FormattedComment"> Is that the same principle as what Akonadi does ?<br> They use also a database and IMAP is also involved AFAIK...<br> <p> Alex<br> <p> </div> Wed, 18 Nov 2009 22:46:35 +0000 The notmuch mail system https://lwn.net/Articles/362583/ https://lwn.net/Articles/362583/ aleXXX <div class="FormattedComment"> And I thought I have a lot of mails on my system...<br> <p> I checked, and currently I have around 85000 mails here, with the biggest <br> folder containing 17000 mails.<br> Until now there are absolutely no performance issues when using kmail for <br> this amount of mails.<br> <p> Alex<br> <p> </div> Wed, 18 Nov 2009 22:45:00 +0000 The notmuch mail client https://lwn.net/Articles/362575/ https://lwn.net/Articles/362575/ raf <p>I'm doing something similar, using PostgreSQL at the back end, <a rel="nofollow" href="http://www.doxdesk.com/pxtl/">PXTL</a> for a web-based front end, and <a rel="nofollow" href="http://python.net/crew/mwh/apidocs/twisted.mail.imap4.html">Twisted's IMAP4</a> component as the basis of the IMAP server.</p> <p>I wanted it in PostgreSQL because I want to link it up with my GnuCash data (whose beta versions support PostgreSQL again) and a personal wiki (currently MediaWiki).</p> <p>Anyway, nothing worth releasing yet.</p> Wed, 18 Nov 2009 22:22:12 +0000 Smoke test https://lwn.net/Articles/362574/ https://lwn.net/Articles/362574/ man_ls To get the best of both worlds you just run an integrated test suite <i>instead of</i> or <i>in addition to</i> compiling. This way you can catch both type errors and other functional errors. It's not that hard to do, really, and it often takes less than compiling a lot of code. Just be sure to make it run real fast. Wed, 18 Nov 2009 21:49:04 +0000 The notmuch mail client https://lwn.net/Articles/362572/ https://lwn.net/Articles/362572/ jonabbey <div class="FormattedComment"> Very neat! Did you ever talk with other IMAP server implementers about your experience with using a SQL back-end?<br> <p> I had gathered from various comp.mail.imap discussions over the years that certain features of IMAP were rather difficult to do efficiently with a relational database, though I never went about implementing anything server-side with IMAP.<br> </div> Wed, 18 Nov 2009 21:46:38 +0000 Jack of many trades https://lwn.net/Articles/362540/ https://lwn.net/Articles/362540/ man_ls I use it at work, and "happy" is not the word. "Constantly bothered by it, but not sufficiently annoyed to actively fight it" is more like it. And the bloody calendar is not that bad if you have, say, 10--20 meetings a week. Yeah, my life sucks :( <p> Many people fail to understand the fundamental truth behind your wise statement: if your software doesn't do X, corporate buyers will not even consider it. It can be badly done, not scale and generally be poorly engineered, but do whatever they want it to do and suddenly you are eligible. Sounds reasonable, right? The vast majority of people are not able to see beyond the "what" and into the "how". Wed, 18 Nov 2009 19:00:35 +0000 The notmuch mail client https://lwn.net/Articles/362506/ https://lwn.net/Articles/362506/ wstephenson <div class="FormattedComment"> That's just a packaging mistake then. What are these debian cowboys like? &lt;/joke&gt;.<br> <p> Contrary to what you've heard Akonadi doesn't require a configured mysql server running on the machine. It spawns a per-session instance of mysql running a custom config that is tweaked, minimal and secure. We started with mysql-embedded but after running into weird problems with it, went for the standalone process - it doesn't create significantly more overhead and we think we have the process management sorted.<br> <p> You do still have to have an installed mysql though. Postgresql and sqlite support are being worked on, but we've run into a lot of problems with heavily multithreaded access to sqlite.<br> </div> Wed, 18 Nov 2009 17:25:42 +0000 The notmuch mail client https://lwn.net/Articles/362503/ https://lwn.net/Articles/362503/ jond <div class="FormattedComment"> Thanks for pointing this out. I'm also going to have to have a proper look <br> :)<br> </div> Wed, 18 Nov 2009 16:57:55 +0000 The notmuch mail client https://lwn.net/Articles/362498/ https://lwn.net/Articles/362498/ jond <div class="FormattedComment"> I think I've heard of this akonadi. That's the thing that isn't actually a <br> DB, but backends to one, right? Iirc, it's the cause of some ire in Debian <br> because the package depends on the mysql-server package, meaning any KDE <br> desktop user needs an installed and configured mysql server on their <br> machine.<br> <p> Anyway, I think xapian is more fit-for-purpose for this problem than a <br> generic relational database.<br> </div> Wed, 18 Nov 2009 16:42:50 +0000 The notmuch mail client https://lwn.net/Articles/362471/ https://lwn.net/Articles/362471/ nye <div class="FormattedComment"> This look awesome.<br> <p> I hope to find time to look at it properly at some point, thanks.<br> </div> Wed, 18 Nov 2009 14:19:52 +0000 The notmuch mail client https://lwn.net/Articles/362464/ https://lwn.net/Articles/362464/ lab <div class="FormattedComment"> "Evolution is the only one that has the features that typical users expect nowadays"<br> <p> You don't like Thunderbird?<br> </div> Wed, 18 Nov 2009 13:14:58 +0000 The notmuch mail client https://lwn.net/Articles/362462/ https://lwn.net/Articles/362462/ halla <div class="FormattedComment"> I'm getting a few thousand mails a day in three accounts -- about half of<br> them spam, the rest ordinary mail and a lot of mailing list mails. KMail<br> handles that just fine, including the spam filtering. <br> <p> But I'm using pop: not sure whether imap would would work as well. My<br> archives aren't that big though, I throw away a lot of mailing list mail<br> after having skimmed it, and my archives don't go back to 1993 anymore<br> after a stupid crash.<br> <p> And I'm going to try mailody soon, which uses Akonadi and is designed for<br> handling large amounts of mail over imap.<br> </div> Wed, 18 Nov 2009 13:11:32 +0000 The notmuch mail client https://lwn.net/Articles/362460/ https://lwn.net/Articles/362460/ endecotp <div class="FormattedComment"> Nice to see that there is innovation going on in email, still.<br> <p> A few years ago I had some spare time and decided to "scratch an itch" by implementing my own "ideal" email system. My requirements were:<br> <p> - Accessible via a web client, at least as a secondary interface.<br> - No "lock in" to a particular front end.<br> - Fast search and message categorisation.<br> <p> I ended up by putting all of the messages in a PostgreSQL database, with full text indexing, and then writing an IMAP interface to it. I have "virtual folders" that are implemented by SQL queries, with new ones created in response to IMAP actions. So in my IMAP client (any IMAP client) I can create a folder called "Keywords/Beer" and it immediately contains all messages containing that keyword, or I can create a folder called "People/Fred" and drag one message from Fred into it, and it immediately contains all messages from (and maybe to) Fred.<br> <p> It works reasonably well with ~100,000 messages. The weak part is IMAP, which I found to be a rather nasty protocol. It is GPLed and available at <a rel="nofollow" href="http://decimail.org/">http://decimail.org/</a> - however, it has never had much external interest and has suffered from bit rot, so I don't really encourage anyone to try to use it unless very keen.<br> <p> <p> Phil.<br> </div> Wed, 18 Nov 2009 12:20:47 +0000 The notmuch mail client https://lwn.net/Articles/362457/ https://lwn.net/Articles/362457/ nye <div class="FormattedComment"> I would normally expect 'typical users' to mean 'home desktop users', in which case MAPI support is irrelevant - who runs their own Exchange server?<br> <p> I presume you are thinking rather about the sort of features that might encourage large-scale corporate deployment?<br> <p> I kind of think this is leaving the realm of mail clients though. MAPI clients (without using nasty hacks, are there any other than Outlook?) aren't really the same thing as mail clients to my mind.<br> <p> While Outlook is *technically* a mail client, it's about the worst you're ever likely to find (with the exception of Evolution once you start paying attention to things like performance and stability), but it's not really meant to be its function, per se, just one of its features. (It's interesting that Outlook does everything badly - but it does several things all together, which makes people happy)<br> </div> Wed, 18 Nov 2009 11:26:54 +0000 The notmuch mail client https://lwn.net/Articles/362447/ https://lwn.net/Articles/362447/ cworth <div class="FormattedComment"> Thanks for the idea.<br> <p> I've intentionally put the most interesting pieces of notmuch into<br> what I think is a clean and well-documented library interface. I'm<br> hoping that people will take the code and integrate it into lots of<br> things I haven't imagined yet. (And integration with dovecot is<br> definitely something I hadn't imagined.)<br> <p> Things that I have imagined are a web-based client, and using notmuch<br> to get good archives of mailing lists. (The fact that mailman's<br> default archiver, pipermail breaks threads at arbitrary boundaries<br> likes months has driven me crazy for years.)<br> <p> -Carl<br> <p> </div> Wed, 18 Nov 2009 10:03:39 +0000 The notmuch mail system https://lwn.net/Articles/362444/ https://lwn.net/Articles/362444/ cworth <div class="FormattedComment"> Hi Alex,<br> <p> You've got Keith's take on our project so far. Let me try to add a bit<br> of my own.<br> <p> First, I like to call this project the "notmuch mail system" rather<br> than the "notmuch mail client". Our emacs client is just one (tiny)<br> piece of the system and I know that not everybody will want that,<br> (probably most people won't).<br> <p> But a more interesting thing that Notmuch has is a really nice, clean<br> C library interface to all of the interesting pieces, (mail indexing,<br> fast search, tagging, etc.), thanks to Xapian of course.<br> <p> So I would be quite happy if the developers of existing graphical<br> email clients took a look at Notmuch from the point of view of<br> integrating with the library for search. Personally, I've got about<br> 600 thousand emails in my collection and I've yet to find a graphical<br> client which can search even a small fraction of that very quickly.<br> <p> But with Notmuch, even the largest searches can return results almost<br> instantly, and that's really nice.<br> <p> Then again, if nobody uses it but me, then I'll still be happy. :-)<br> <p> -Carl<br> <p> </div> Wed, 18 Nov 2009 09:59:45 +0000 The notmuch mail client https://lwn.net/Articles/362446/ https://lwn.net/Articles/362446/ jospoortvliet <div class="FormattedComment"> Makes sense, you need a database for that many emails I suppose. Something like Akonadi I would say :D<br> <p> Would certainly be an option for the notmuch mail client...<br> </div> Wed, 18 Nov 2009 09:57:47 +0000 The notmuch mail client https://lwn.net/Articles/362442/ https://lwn.net/Articles/362442/ dmk <div class="FormattedComment"> hm... make that 0-100msgs probably... because at that point thunderbird starts to hurt already pretty much...<br> </div> Wed, 18 Nov 2009 09:12:09 +0000 The notmuch mail client https://lwn.net/Articles/362440/ https://lwn.net/Articles/362440/ dmk <div class="FormattedComment"> to adress the 'kmail and thunderbird' comment:<br> <p> there's a difference between using mail with 0-400 msgs per day and using mail with &gt;400 msgs per day. <br> <p> the former is the category where the mainstream emailagents are ok. but for larger number of mails there are are performance problems and mail-handling-inefficencies that criple one's ability to handle mail fast. (these inefficiencies are mostly by design and not bugs)<br> <p> i for one use claws-mail, but am in the &lt;400msgs per day category. <br> <p> cheers,<br> dmk<br> <p> p.s.: and plz! don't mention outlook, because most people here don't even know what it looks like. <br> <p> </div> Wed, 18 Nov 2009 09:10:05 +0000 Interpreted and compiled languages https://lwn.net/Articles/362438/ https://lwn.net/Articles/362438/ mjthayer <div class="FormattedComment"> <font class="QuotedText">&gt; My other complaint about Ruby/python/perl/misc is fairly simple -- I expect the computer to detect and complain about my programming errors as soon as possible. Static typing errors can be detected during compilation and need not wait until execution time.</font><br> <p> This is probably a really silly thought, but more often than not, Python code is compiled (into pycode, but still compiled). Sometimes on the fly, usually in advance for distributed packages. I can picture Python scripts containing additional type information for variables, perhaps as specially formatted comments or docstrings, and the compiler printing warnings at compile time, lint-style, when something looked fishy - perhaps not for on-the-fly compiles, but only for advance compiles, or then again perhaps for all.<br> <p> I don't know if Python has any other special issues (apart from the white space thing and the global namespace).<br> </div> Wed, 18 Nov 2009 08:47:57 +0000 The notmuch mail client https://lwn.net/Articles/362431/ https://lwn.net/Articles/362431/ magfr You mean like <a href="http://www.go-evolution.org/MAPIProvider">this</a>? Wed, 18 Nov 2009 06:47:09 +0000 The notmuch mail client https://lwn.net/Articles/362405/ https://lwn.net/Articles/362405/ drag <div class="FormattedComment"> Oh, and thanks for bring up seive. That's something I've been wanting for a <br> while now.<br> </div> Wed, 18 Nov 2009 02:52:21 +0000 The notmuch mail client https://lwn.net/Articles/362404/ https://lwn.net/Articles/362404/ Darkmere <div class="FormattedComment"> 1.45 Million emails at least cause it to churn a bit. And that amount isn't really usable on a normal filesystem with maildir unless you start using year/month/ sorting for various lists.<br> <p> </div> Wed, 18 Nov 2009 02:40:18 +0000 The notmuch mail client https://lwn.net/Articles/362402/ https://lwn.net/Articles/362402/ roc <div class="FormattedComment"> Define "sufficiently large"?<br> </div> Wed, 18 Nov 2009 02:32:57 +0000 The notmuch mail client https://lwn.net/Articles/362400/ https://lwn.net/Articles/362400/ drag <div class="FormattedComment"> <font class="QuotedText">&gt; I'm not sure what you include as "features typical users expect nowadays", </font><br> <font class="QuotedText">&gt; but I find Kmail to be quite featureful, and there certainly others.</font><br> <p> Well MAPI support would be a big one.<br> </div> Wed, 18 Nov 2009 02:23:02 +0000 The notmuch mail client https://lwn.net/Articles/362399/ https://lwn.net/Articles/362399/ rsidd <div class="FormattedComment"> Uh... that's Keith Packard you're talking about. Look him up.<br> </div> Wed, 18 Nov 2009 02:18:46 +0000 The notmuch mail client https://lwn.net/Articles/362395/ https://lwn.net/Articles/362395/ nix <div class="FormattedComment"> kmail and thunderbird both choke when faced with sufficiently large <br> amounts of email. xapian doesn't. (Oh, and 'why emacs' is simple: if you <br> use it as your text editor anyway, it makes for a bloody good environment <br> to implement the whole UI in. This is not an isolated belief: rmail <br> (historical interest only), VM, Mew, and Gnus attest that this is an itch <br> that a lot of people like to scratch. notmuch looks seriously nice to me, <br> because the one thing that's clumsy and slow in Gnus is searching.)<br> <p> </div> Wed, 18 Nov 2009 01:09:09 +0000 The notmuch mail client https://lwn.net/Articles/362387/ https://lwn.net/Articles/362387/ petegn <div class="FormattedComment"> Yes Kmail is perfect i have used it for ages with no problems at all dunno about this Imap stuff never tried it dont need it , Then there is what is it Evolution on Gnome donu use gnome so not too sure .<br> <p> I think what people are actually trying to say without actually saying as much is they only know about outlook and cant find outlook (scuse me whilst i barf ) for Linux boy am i glad of that Outlook Distress is just that Distressing..<br> <p> <p> </div> Tue, 17 Nov 2009 23:28:32 +0000 Language wars https://lwn.net/Articles/362383/ https://lwn.net/Articles/362383/ NAR <I>I expect the computer to detect and complain about my programming errors as soon as possible. Static typing errors can be detected during compilation and need not wait until execution time.</I> <P> Don't forget that you have to execute the code anyway to test it. Now the real question is that which is faster: compile (and compile and compile...) C/C++/Java source and execute, or compile a perl/python/ruby/erlang/etc. source, execute, compile, execute, etc. It depends on the problem domain, but the later could be faster in the long run. <P> Type errors are probably found earlier with C (although the automatic numeric conversions could be tricky), but program logic errors might be found later. I work with a dynamically typed language and sometimes miss the compiler help with types - but certainly don't miss the "type make, then go for a coffee" days of C++ programming. <P> And I haven't even mentioned buffer overflows plaguing C programs since forever, where the compiler won't help much. Tue, 17 Nov 2009 22:34:07 +0000 Language wars https://lwn.net/Articles/362378/ https://lwn.net/Articles/362378/ epa <div class="FormattedComment"> Thanks for the explanation. I agree with your point about dynamically typed languages; I would also like the compiler to do more work for me, and I enjoy hacking things in languages like Haskell (and occasionally C# or even C++) and getting that solid 'clunk' sound when all the code compiles successfully into an object file with no possibility of runtime type errors. And yet my preferred language for hacking something up in a hurry remains perl.<br> </div> Tue, 17 Nov 2009 22:06:31 +0000 The notmuch mail client https://lwn.net/Articles/362350/ https://lwn.net/Articles/362350/ aleXXX <div class="FormattedComment"> Hmm, what's wrong with kmail or Thunderbird ?<br> And they fix that (?) by introducing an email client for use in <br> emacs ????<br> <p> Alex<br> <p> </div> Tue, 17 Nov 2009 19:38:52 +0000 linux GUI IMAP client https://lwn.net/Articles/362345/ https://lwn.net/Articles/362345/ dlang <div class="FormattedComment"> take a look at mulberry <a href="http://mulberrymail.com/">http://mulberrymail.com/</a><br> <p> it does a good job of properly using IMAP (including sieve for server-side filtering), although most of the code is old so it may not have all of 'the features that people expect today'<br> <p> it was released as opensource a year or so ago, but compiling it has been a horrible pain so very little progress has been made in that time. however in the last week or two there have been a lot of commits to SVN that make it much easier to compile, so I expect a lot more changes to start happening now.<br> </div> Tue, 17 Nov 2009 18:55:58 +0000 The notmuch mail client https://lwn.net/Articles/362338/ https://lwn.net/Articles/362338/ rfunk <div class="FormattedComment"> Sieve is supposed to make it easier for clients to mess with server-side <br> filters, but unfortunately support for it isn't quite universal.<br> <a href="http://sieve.info/">http://sieve.info/</a><br> <p> I'm not sure what you include as "features typical users expect nowadays", <br> but I find Kmail to be quite featureful, and there certainly others.<br> </div> Tue, 17 Nov 2009 18:21:40 +0000