For the past couple of days I've gone back over my golang projects, and updated each of them to have zero golint/govet warnings.
Nothing significant has changed, but it's nice to be cleaner.
I did publish a new project, which is a webmail client implemented in golang. Using it you can view the contents of a remote IMAP server in your browser:
- View folders.
- View messages.
- View attachments
- etc.
The (huge) omission is the ability to reply to messages, compose new mails, or forward/delete messages. Still as a "read only webmail" it does the job.
Not a bad hack, but I do have the problem that my own mailserver presents ~/Maildir over IMAP and I have ~1000 folders. Retrieving that list of folders is near-instant - but retrieving that list of folders and the unread-mail count of each folder takes over a minute.
For the moment I've just not handled folders-with-new-mail specially, but it is a glaring usability hole. There are solutions, the two most obvious:
- Use an AJAX call to get/update the unread-counts in the background.
- Causes regressions as soon as you navigate to a new page though.
- Have some kind of open proxy-process to maintain state and avoid accessing IMAP directly.
- That complicates the design, but would allow "instant" fetches of "stuff".
Anyway check it out if you like. Bug reports welcome.