11 ms·
IMAP client for coders
- fxtentacle 14y agoIf you're also working on IMAP / mail clients and want to discuss the technicalities, feel free to drop me a line at mail at hajo (dot) me
- tonyarkles 14y agoI've been knee deep in imap for the last month or two. As a curiosity, which imap library are you using? I've had to contribute a few patches to ruby's net/imap already to get it to successfully parse all the mail I've accumulated over the last 10 years :)
- fxtentacle 14y agoI started with patching the IMAP parser from Google Go, then i re-wrote parts of it to make my email collection work. I still cannot successfully MIME-parse all of my emails, but the ones that fail are spam (and also don't work in Outlook 2011) so i'd say it's the email's fault. I can recommend Google Go for tasks such as IMAP because of its concurrency model. You can run a go-routine for each IMAP connection and their idea of agents communicating through channels worked really well for my IMAP client.
- tonyarkles 14y agoThat's really fascinating! I might have to look more into this. Last time I looked at Go, it was stuck without multi-CPU support, which was a show stopper for the project I was working on. Probably worth revisiting.
- julian37 14y agoHi Hajo, this looks great! I'm an Emacs addict though, and the main reason I'm not using Gnus anymore is that I haven't found a IMAP syncing solution that "just works" (last time I've checked). Since it sounds like you've solved this problem, is there any chance the syncing module can be run standalone? If so I'll most definitely chip in on your Kickstarter.
- BCM43 14y agoI'm currently using offlineimap and notmuch. Have you tried that?
- julian37 14y agoI think that used to be my setup, except with mairix. It's a while ago and I don't recall now why I was unhappy with it. But seeing that offlineimap is still actively maintained and has seen plenty of updates in the meantime, maybe I should try again. Thanks for the heads up!
- p4bl0 14y agoEmacs user here too. I'm using offlineimap which works great, and then I use mu and mu4e [1] to read my email in Emacs. [1] http://www.djcbsoftware.nl/code/mu/ http://www.djcbsoftware.nl/code/mu/
- fxtentacle 14y agoSorry to disappoint you, but i did not find a solution to make IMAP sync correctly. I circumvent the problem by running a gateway that will be continuously connected to the IMAP server. The clients that connect to the gateway, which can do proper syncing :) So syncing between my mail client and mail clients from other people will be as frickle as ever. What this project aims to do right is offline mode and syncing between multiple instances of my mail client.
- ante_annum 14y agoI've also been writing an imap client for the past few months with exactly the same goal as this, in go. This looks great. I'd like to keep my front-end as absolutely light as possible, so I'm foregoing gwt/bootstrap and going with mostly just handwritten jquery.
- fxtentacle 14y agoInteresting coincidence :) This project is also written in Go. I have IMAP go-routines which will send changes on the IMAP server to a gateway multiplexer which stores those changes in a synchronize-able DB. The Webgui will listen for changes from the DB and present them to the user. I chose to go this route such that i can run the gateway and the webgui on different computers both with a local copy of the DB and have them synchronize when network connectivity is present. I've opted for GWT because i like static typing. From a performance perspective, i've never really found much difference between GWT and hand-written JS.
- ante_annum 14y agoThat's pretty funny. I essentially rewrote martine's imap client, and then I'm currently working on integrating it into an ajax and SSE-heavy webapp. I personally don't like html emails, so I've gone with a plain text-editor (read textarea), but sanitizing incoming html emails is the hardest thing I've run into.
- zaius 14y agoLooks awesome! Nice work. I don't know how I feel about the closed source -> kickstarter -> open source model. Why not just put it on github now and get people using it? Unrelated to the product, but I'd change your highlighting on the site to something other than blue - ux wise it makes me think it's going to be a link.
- fxtentacle 14y agothanks :) the GUI is mostly Twitter Bootstrap + Font Awesome + GWT I was also not so sure about using Kickstarter for source code, but then i stumbled upon Light Table, which is a coding tool sold there. I'd really like to continue working on it to make it more polished and for that i need some way to get money out of it. I could, of course, try to sell it as a SaaS project, but that would block people from hacking it.
- dfc 14y agoI'm all for open source and all for you having a roof over your head. I think its a great model. I wish you the best of luck.
- zaius 14y agoDefinitely still do the kickstarter. What I meant was I think you'll have better luck on the kickstarter if it's open source to begin with. I'd feel uneasy giving money to a kickstarter project that could stay closed source. I think you should also offer it as a SaaS once you get it up and running. Being open source doesn't stop you from doing that. Then you get the best of both worlds.
- fxtentacle 14y agoThank you for the explanation. Yes, paying for a project which then fails would suck. I'll send the binaries around and upload them once i get around to packaging them (probably tomorrow). For the kickstarter i was planning on making the current state of the project open source as soon as the funding is reached. Do you think that would also work? I mean if i open source the whole thing beforehand, why should someone participate in the kickstarter when they can get also get it for free (although unfinished) right away? As for SaaS, i'd say that the client should run on the user's computer in any case, just to make stuff really fast :) Hosting the IMAP-Synchronization-Gateway might work, though.
- jayniz 14y agoYou say you "click" the archive button? Using the mouse for mail? I don't think this is for me. :)
- evoxed 14y agoIf you offered a license for web hosts to use this, I think I know a whole bunch of coders and designers who would gladly pay for a hackable IMAP client. Kickstarter isn't a bad idea, but you should also try polling people to find out if you could set up SaaS at the same time or some other scheme. There are many possibilities...
- fxtentacle 14y agoThe program is structured in a way that you can use it both as a hosted webmail AND as a locally running client. I needed that so i can use the web version from my iphone and sync my laptops for offline use. But for web hosts i think they would prefer a solution for multiple users. This is designed for one person with multiple email accounts, so they would need to start the webgui program multiple times to host multiple users. As for SaaS i'd rather have the users host their own version on Heroku or EC2 than having to manage all those clients.
- evoxed 14y agoSorry, I realized after posting that my phrasing was pretty bad. The current setup looks good for the sort of thing I do– I would pay for it (one time probably)– but if you then made it super easy to set up for multiple users, even if it was a simple shell script or some kind of interface, you could do some sort of tool-subscription (pay once or subscribe for updates). By webhosts I was thinking primarily of people like me who manage a couple servers and do everything server-side for our clients except plug in the fiber...
- X-Istence 14y agoCheck out Roundcube if you are looking for an awesome webmail client.
- AceJohnny2 14y agoDon't coders use Mutt ? :] http://en.wikipedia.org/wiki/Mutt_(email_client) http://en.wikipedia.org/wiki/Mutt_(email_client)
- IheartApplesDix 14y agoConsidering Mutt supports PGP, and this doesn't seem to, yes.
- fxtentacle 14y agoYou're correct on that one. I built this client to make my work with email better. I'm not sure if i have ever received an email with PGP and i'm pretty sure that it would confuse half to all of my colleagues ...
- dfc 14y agoYou need to find better colleagues. Plus multipart mime makes it a lot less confusing for people who do not understand pgp signatures. Long gone are the days where you have to have a giant block of random characters appended to the body of your message.
- roel_v 14y agoNot true. I stopped signing my emails 10-ish years ago because I kept getting people mailing me back that they 'couldn't open my attachments'.
- dfc 14y agoWith multipart mime messages you no longer have a large block of random characters at the bottom of the body of your message. This is a fact. Moreover the mail clients now treat pgp and smime signature attachments in more intuitive manner so users are not tempted to try and open them as easily. Most importantly know your audience, grandma does not need to have your vacation recap emails signed.
- zoidb 14y ago> I obviously can't afford to give my work away for free Why is that obvious?
- acchow 14y agoHe seems to be confused seeing as he also built it with FOSS like bootstrap and GWT.
- piqufoh 14y agoObviously those tools aren't given away for free! oh.
- fudged71 14y agoThe Bootstrap framework can't be used for commercial purposes?
- acchow 14y ago"I have chosen to charge a nominal price for this" is different from "I obviously can't afford to give my work away for free."
- fxtentacle 14y agoThe main difference here is that the people who wrote Bootstrap and GWT were employees and they were PAID to work on those open source projects. I'm not employed for working on OS software. I did less contract work (and thus now have less money) so that i could spend my time on preparing a solution which works well for me. However, if i need to spend more time to make it work well for other people, that would be a stupid decision for me if it means that i lose more money. But if you look above, i'm not set in stone about the OS / not-OS debate. I'm just wondering if people would be willing pay me for polishing it if the source is already available. If not, this could very quickly turn into one of those highly ambitious, yet dead, open source projects as soon as i'm forced to work on other projects.
- 14y ago
- benatkin 14y ago> I obviously can't afford to give my work away for free, but for you to get maximum benefit out of it, it needs to be open source. Who is it obvious to? This is the first time I've heard of you. For all I know you could afford to give it away for free. And often in the case of open source, you reap the benefits later. Sounds like a great project, and the screenshots are promising.
- ajross 14y agoIt's ransomware, yeah. Historically this is never (I mean, literally never AFAIK) been a good way to start a successful open source project. This might fool a few people (who like source in principle, but who don't want to muck with it themselves) into thinking it's "almost as good as open" and contributing. But it's deeply, deeply disrespectful to the community you will actually need to build if you want this to succeeed. Basically the funders end up being dupes; there's no community and probably never will be. I agree it looks cute, and I'd love to try it if it were available. But I certainly won't be funding it.
- fxtentacle 14y agoThat seems to be well-reasoned criticism. I think i would need to further polish it before people will invest time on their own accord into keeping the open source project alive. To achieve that, i need some money to pay to pay for work and design. Giving software away for free and asking for donations doesn't seem to work well. At least i got like 500 support requests but no single donation yet for my last email project: http://tentacleworks.net/Site/Nostalgy_4_Mail.app.html http://tentacleworks.net/Site/Nostalgy_4_Mail.app.html So i thought that the best way to make this work would be to ask interested users to pay for the development costs, like Light Table: http://www.kickstarter.com/projects/ibdknox/light-table http://www.kickstarter.com/projects/ibdknox/light-table Do you have any experience / suggestions on how to launch this?
- Vivtek 14y agoNo. You don't need to polish it further. If it were free right now, I'd be using it today and helping you polish it. As it is, yeah, I feel disrespected. You want my free help (or the free help of other somebodies like me) but you want to be paid for your work. Obviously. Sorry, I really don't mean to be That Guy, but you are not coming across as anything like sympathetic, and I am 100% your target audience. Light Table is a darling of the community, but I get the same vibe there. Although, to be honest, he's got a huge (yet unspecified) vision and is asking to be "freed up" to work on it, whereas you've scratched your own itch and already have a working project but want to be paid before you'll let people use it. If you want my advice (which is worth as much as it costs you) put it on Github now and offer a supported, shrinkwrapped version for sale. Then you get paid, at least more than you're paid now, while still having an open source project. "But nobody will buy it if they can just download it," you say, and you may be right - or maybe not. It's worth a try. Sell a souped-up version, sell corporate bulk contracts with support, I don't know. There are lots of open source business models that have been applied with varying success. But don't, for the love of God, sell your time to the open source community.
- jamesaguilar 14y agoIf gmail makes you sick, I'm afraid I don't have much faith that you know what I might like in a mail editor.
- Andrex 14y agoNor good design. With a little tweaking, Gmail is absolute minimalist nirvana. http://i.minus.com/ib0I7hmj8fzm2b.png http://i.minus.com/ib0I7hmj8fzm2b.png (User stylesheet here: https://gist.github.com/4650448 https://gist.github.com/4650448)
- zaius 14y agoHow do you apply a custom stylesheet? Do I have to use greasemonkey?
- jlogsdon 14y agoStylish[1] would work. [1] https://chrome.google.com/webstore/detail/stylish/fjnbnpbmkenffdnngjfgmeleoegfcffe https://chrome.google.com/webstore/detail/stylish/fjnbnpbmke...
- Andrex 14y agoStylish or Minimalist (which is what I use): https://chrome.google.com/webstore/detail/minimalist-for-everything/bmihblnpomgpjkfddepdpdafhhepdbek https://chrome.google.com/webstore/detail/minimalist-for-eve...
- fxtentacle 14y agoThat might be correct. It's pretty hard to read people's minds before meeting them ;) I really like the GMail editor and their table view. That's why my inbox view looks so much alike :) What i, however, honestly dislike is their overall sluggishness. GMail seems pretty slow and last time i tried, their offline mode didn't work well enough so that i could use it to work on a train. So i try to use the good GMail editor and combine it with the somewhat OK Outlook offline mode. But as a complete package, i hate working with both of those.
- patangay 14y agoLooks great! But, here is the problem. Medium to large companies, they need some sort of calendaring and meeting room booking system. This is where outlook (more importantly exchange) comes into the picture. I don't think it's the best solution out there, but it's a solution that works reasonably well. I also don't really like that email and calendaring are tied together, I'd love to see a robust solution that works across Windows, Mac, Linux, Android and iOS. Yishan Wong wrote about this a few years ago.[1] So, this would work great for personal email and small companies, but I don't see it replacing the email client of the larger ones. I'd love to see gmail and microsoft give some of these search/indexing features. [1] http://algeri-wong.com/yishan/great-unsolved-problems-in-computer-science.html http://algeri-wong.com/yishan/great-unsolved-problems-in-com...
- AmericanOP 14y agoWe're trying to make that whole experience better. Thanks for the link. Drop me a line if you want to chat danny (@) outlook.com.
- fxtentacle 14y agoYes, Outlook is great for time planning .. if all of your team uses it. However, most people that send me emails use GMail or other web mailers and thus Exchange is not really a benefit in that regard. Before i started my work on this client, i used Outlook 2011 and i'm still paying for hosted Exchange so yes, i think they are both reasonably designed products. It's just that Outlook doesn't suit my workflow of dealing with email. And it can be pretty slow at times. And it sometimes doesn't sync well after offline mode.
- IheartApplesDix 14y agoRoundcube and Zimbra are efforts toward this.
- tonybaroneee 14y agoWhat HTML editor do you use for email composition? (e.g. TinyMCE, CKEditor)
- fxtentacle 14y agoI wrote my own simple editor which is based around content blocks. So for example every headline is a Text-block with style "Headline". https://github.com/fxtentacle/hajo-page-editor https://github.com/fxtentacle/hajo-page-editor
- tonybaroneee 14y agoInteresting, I'll check this out some more!
- javert 14y agoclaws-mail is really nice. Highly recommended if you don't mind fiddling to get things set up the way you want.
- jcoder 14y ago> I've been using it since november, which was three months ago. That's why i consider this mail system > battle-tested A very small battle. More a skirmish, really.
- fxtentacle 14y agoCorrect. I'd wager that "skirmish-tested" doesn't sound as good, though ;) What i mean to say is that i'm very confident that it works good enough for a more-or-less public beta. Of course, much work still remains to make it compatible with every IMAP server out there, but as a single person i won't have the time nor the resources to get there.
- tillk 14y agoQuote from the page: > I obviously can't afford to give my work away for free, but for you to get maximum benefit out of it, it needs to be open source. Meet others who can afford to give away their work for free: http://squirrelmail.org/ http://squirrelmail.org/ http://roundcube.net/ http://roundcube.net/ http://www.xuheki.com/ http://www.xuheki.com/ http://www.horde.org/apps/imp http://www.horde.org/apps/imp And there is more — google: webmail client open source
- fxtentacle 14y agoI honestly wonder how they do it. I'm a freelancer and if i work for free, i do not have any money. So for me to be able to develop and share this freely, i would probably need some big corporation that is willing to pay me for working on it. I'd also be interested in how those projects come up with the money to pay a professional designer. Roundcube looks very sleek, as if it was designed professionally. BTW, what i'm developing isn't exactly a webmail client. It is an server-side IMAP gateway and a client so that you can use it completely offline.
- tillk 14y ago> I honestly wonder how they do it. Have you ever heard of open source? :) I've contributed to this project and various others and I frequently had people either hire me to add features to a certain project I worked on/released or bought me a book or so off my Amazon wishlist. Though one time a company actually paid me to work on open source, this is nothing that pays my rent (currently) and also not my motivation to work on open source in the first place. My main driver is that I use open source and I decided to give back. It also helps my resume though I never really needed that either. As for RoundCube's design — thank you. I am not a 100% sure right now if "money" went towards the design, but feel free to drop us a line at hello~at~roundcube~dot~net.
- p4bl0 14y agoIMAP client for coders? Let me review: not open source, web based, html emails, no PGP support, IMAP client tied to MUA, no mention of keybindings… Nope. Not for coders. Even less for "hackers" as the webpage say. And that's just technicalities, but as others already said, "I obviously can't afford to give my work away for free"… well, sigh. I'm not saying everyone should use Mutt or read their email in Emacs, but I'm a little sad that this link got so much upvotes.
- fxtentacle 14y ago"not open source" This post is here to discuss options for changing that. "web based" I'd say that is a plus, because you can have the same GUI running locally (and fast) on your computer and running remotely (and slow) on your web server. I know that WebKit has a huge overhead compared to emacs or mutt, but since about every second email that i receive is HTML anyway, i won't be able to avoid WebKit / Gecko. "html emails" I have to write email to normal people too. I know it's sad, but most of my friends prefer HTML emails with pictures. That said, some of my existing beta testers are using it to send around HTML newsletters. "no PGP support" correct. I've never used it and (see below) the PGP signatures seem to irritate some people. "IMAP client tied to MUA" correct. I chose to go this way to finally have fast and working offline mode with synchronization "no mention of keybindings" I implemented CMD+I for INBOX and CMD+S for search. Since i didn't miss anything else, i didn't implement them. I consider myself a coder/hacker and i built this to suit my workflow, so i thought that description to be accurate. "I'm a little sad that this link got so much upvotes" I'd say this is a good thing because it gives us the possibility to discuss what you dislike about my email client or email in general. BTW, i'd be interested in what solution you currently use. Maybe that'll also help others that drift here to find their new perfect mail client.
- cies 14y agoi think this with good indexing/search capabilities, and tagging (like gmail) and PGP support with a clean web-UI that supports multiple screen sizes (devices) is an ABSOLUTE HIT! run one on my phone! and/or over https on _MY_ server. then build calendar-chat-etc in. wow..
- antifuchs 14y agoFascinating. What do you use to sync emails to the offline mirror? (-:
- ante_annum 14y agoThis is an imap client + local database + web interface to local database