So the FETCH command in the IMAP client gave me some problems. Turns out this command is overly complicated and the syntax that the server return is extremely difficult to parse.
Maybe it was just me, but it did not make sense at first and while it still does not make sense I can now parse it into Erlang data structures.
I still have one or two sub-commands to iron out before I release anything and some bug testing to do as well, but the IMAP client is functional, so long as you know how to use it.
I’m going to start writing my web-mail client this week and hopefully that will find all the major bugs in the IMAP client and I can release it well before the first of the year.