[erlang-questions] eimap: a little Erlang IMAP client

Aaron J. Seigo aseigo@REDACTED
Tue Dec 15 19:38:22 CET 2015


We began using Erlang where I work[1] for certain new components in our 
flagship product[2] which focuses on collaboration and groupware 
functionality. As such, IMAP is a protocol one sees flying about on a regular 

So, after looking in vain for an IMAP client library written in Erlang, I have 
started to implement one. Say hello to eimap.

It is implemented as a gen_fsm with each of the commands implemented in its 
own module which makes extending / adding the myriad of silly IMAP commands 
that float about in the various RFCs[4] rather easy. It is designed to be used 
by one or more Erlang processes at a time, has a passthrough mode in addition 
to a command queue, tries to be very forgiving in usage (e.g. you can start 
queueing commands before it has connected to the server), ... 

0.1 was a fairly rough-and-ready early release, and certainly quite limited in 
functionality ... but good enough to be used in the first release of a new 
Kolab component[3]. Release early and often, right?

I've done some refactoring this week and added a number of new commands in 
preparation for releasing 0.2 this weekend. Should (one hopes! :) be an 
improvement over the first release.

Feedback, patches, questions, pointers, etc ... all quite welcome.

The project page on our Phabricator instance is here:


git repo:





[1] https://kolabsystems.com
[2] https://kolabenterprise.com via https://kolab.org
[3] https://exote.ch/blogs/aseigo/2015/12/10/guam-an-imap-session-filterproxy/
[4] http://www.imapwiki.org/ImapRFCList

Aaron Seigo

More information about the erlang-questions mailing list