A console-based mail-client with integrated Lua scripting support.
lumail is a modal console-based email client, which features extensive scripting support, via an embedded Lua intepretter.
You'll find a quick introduction to using lumail on the lumail website, along with screenshots.
In brief
lumailis a modal application, so you're always in one of three states:
ato view all mailboxes.
nto view mailboxes containing new mail only.
j/
k/
/.
RETURN.
SPACEand jumping into index mode with
Iwhen you've selected all the folders you care about.
ato view all messages.
nto view new messages only.
j/
k/
/.
j/
k.
The application is developed in C++ and has intentionally minimal dependencies:
Upon a Debian GNU/Linux system you may install all required packages with:
# apt-get install libncursesw5-dev liblua5.1-0-dev lua5.1 \ libgmime-2.6-dev libpcre3-dev libglibmm-2.4-dev
There are binary packages for Debian GNU/linux, compiled by the author.
Although we might become more complex in the future the code currently builds via a simple
Makefile, and running
makewith no arguments should be sufficient.
When you run
maketwo versions of the main lumail binary will be built, one with debugging information present, and one without. Building both at the same time is useful as it allows more diagnostics to be made if/when bugs are found.
There are two choices you can make when building lumail:
make LUA_VERSION=5.1" or "
make LUA_VERSION=5.2" to choose explicitly.
make LUA_VERSION=".
Once compiled the client may be executed directly, but you will need to supply a valid (Lua) configuration file:
$ ./lumail --rcfile ./lumail.lua
Installation should be as simple as copying the supplied configuration file to
/etc/lumail.luaand copying the binary to
/usr/local/bin. If you run
make installthis will be done for you.
If you examine the supplied lumail.lua configuration file you'll get a flavour for the configuration.
The main part of the configuration is to point the mail-client at your local
Maildirlocation, from which all sub-folders will be determined at run-time.
At startup the following files are loaded and executed, if they are present:
/etc/lumail.lua
/etc/lumail.d/*.lua
~/.lumail/config.lua
If zero configuration files are loaded then the client will abort with an error message. This is to ensure that the keymap(s) are defined, etc.
Once you have configuration file you can use any of the supplied Lua primitives to do interesting things. The online Lua examples are a good starting point for reference.
You may find further information upon the lumail website:
I welcome bug reports, and pull-requests.
If you submit two or more functional patches I'm happy to give you direct commit access to the repository.