At the moment this is just a proof-of-concept project to show that an IMAP email client is possible within the browser, in pure JS.
This only fetches the latest messages for your inbox and shows them. Email body text is not yet parsed. Another limitation is that only SSL/TLS connections are supported.
- Download and unzip release/browsermail.zip.
- Load the output folder into chrome://extensions as an unpacked extension.
This was built and tested successfully with Chromium 29 against a gmail.com account
Building from source
$ bundle install $ npm install $ bower install
build folder into Chrome as an unpackaged extension. Notice that JS minification is turned off in
as otherwise the Chrome developer tools console seems to crash.
I grabbed an existing IMAP client (see below) for node and simulated Node's
The following projects are used to make this possible:
- IMAP client - https://github.com/mscdex/node-imap
- TLS implementation - https://github.com/digitalbazaar/forge
- Node.js-style buffer - https://github.com/toots/buffer-browserify - some modifications made to this to get it working
Technically speaking the following should all be possible:
- PGP encryption
- Firefox extension
- Folder listing
- Multiple accounts
- Offline cacheing and usage (
Possible codebase improvements:
- Replace EventEmitter with better one which has
- Replace Weber with a Grunt plugin which does the same (and possibly automates the Buffer lib usage too)
- Grunt task to create Chrome extension
- Automated tests
Licensed under AGPL, see