Skip to content

So progress is going well on lumail

A massive marathon has resulted in my lumail mail client working well.

Functionally the application looks little different to the previous C-client, but it is a lot cleaner, neater, and nicer internally.

The configuration file luamail.lua gives a good flavour of the code, and the github repository has brief instructions.

Initially I decied that the navigation/index stuff was easy and the rest of the program would be hard; dealing with GPG-signatures, MIME-parts, etc.

But I'm stubborn enough to keep going.

If I can get as far as reading messages, with MIME handled properly, and replying then I can switch to using it immediately which will spur further development.

I'm really pleased with the keybinding code, and implementing the built-in REPL-like prompt was a real revelation. Worht it for that alone.

The domain name lumail.org was available. So I figured why not?

Comments On This Entry

  1. [gravitar] Anonymous

    Once you get the basics, would you mind adding some basic IMAP support? IMHO that would be a killer feature, outside emacs there is simply so decent, scriptable MUA with IMAP support and while I've heard lots of complaints, there are unfortunately no recent initiatives to improve that situation (in contrast to offline clients like your luamail or e.g. sup or notmuch). Before you outright reject the idea, have a quick look at http://www.etpan.org/ and https://github.com/dinhviethoa/libetpan/blob/master/tests/imap-sample.c ;) it has a fairly clean API and sufficient abstraction to make it pleasant to work with (especially when comparing it to the crufty old c-client library).

  2. [author] Steve Kemp

    I've seen a couple of IMAP libraries for Lua and while I don't want to disappoint I can't help but thinking that using IMAP will add a lot of complexity:

    • Fetching folder lists which might change.
    • Dealing with network logins + errors.
    • Etc, etc.

    I use two boxes, one delivers locally via procmail, the other locally via an Exim sieve filter. I figured I could cope with IMAP-users by just letting them run "imapsync" on_startup() and on_idle().

    That seems like the simplest possible solution which will let them use the client and avoid me having to write the IMAP-code.

  3. [gravitar] rjc

    It is a bit aged but, in case you hadn't read about it, I thought I'll share a this link with you - http://dieter.plaetinck.be/luamail_a_mail_client_built_into_luakit.html

    I understand that ideas are different here but you might find it a useful read and maybe even re-use some of the building blocks, i.e. luaimap.