A couple of years ago I was dissatisfied with mutt, mostly because the mutt-sidebar patch was dropped from the Debian package. That lead to me thinking "How hard can it be to write a modal, console-based mail-client?"
It turns out writing a client is pretty simple if you limit yourself solely to Maildirs, and as I typically read my mail over SSH on the mailhost itself that suited me pretty well.
Recently I restarted the mail-client. Putting it together from scratch to simplify the implementation, and unify a lot of the adhoc scripting which is provided by Lua. People seem to like the client, but the single largest complaint was "Can't use it - no IMAP."
This week I've mostly been adding IMAP support, and today I'll commit the last few bits that mean it is roughly-functional:
- Connecting to a mail-server works.
- Getting the folders works.
- Getting the messages works.
The outstanding niggles will be relating to getting/setting the new/read/seen/unseen flags, and similar. But I'm pleased that the job wasn't insurmountable.
I've used libcurl
to provide the IMAP functionality because most of
the IMAP libraries I looked at were big, scary, and complex. Using
curl to access
IMAP
is pretty neat, simple, and straightforward. The downside is you're
making a lot of "http" requests. So I might need to revisit things.
Happily my imap wrapper doesn't need much functionality. So if I can find a better library swapping it out will be simple.
In conclusion: Lumail almost has IMAP support, and that might mean it'll be more useful to others.