Live data from Hacker News

How to Build an Email Client

levinianconstant.tumblr.com

11–20 of 39 posts

Re: How to Build an Email Client

#11
post #4

In terms of managing IMAP connections, async is definitely the way to go. For our product, lightermail.com, I ported Python's imaplib to run on Tornado's ioloop (adding a few features like IDLE support and command pipelining). Not only can you manage a lot of connections with little memory, but you can do some really cool things (like the pipelining of commands mentioned above) that are unavailable to regular synchro…

Sounds awesome. Just yesterday I was trying to hack pipelining support into imaplib, ultimately for use with Tornado. I'd be very interested in your implementation.

Re: How to Build an Email Client

#12
Whatever you do when you build your client, do me one UI favor: Reverse the fields when composing. Body, then subject, then addressees, then the Send button. Think of all the headaches due to accidentally-sent mails the world over.

Re: How to Build an Email Client

#14

Very recently I built a little desktop email client. It was...interesting. And hoary. And fraught. Very interesting though, I think everyone should have a crack at writing a basic SMTP library at some stage just so they appreciate the benevolence of anyone happy enough to sit and go through RFC guidelines. Node seems like a far better choice for the project than Rails, no hate for RoR from me but Node is pretty much…

Definitely agree with you that the benevolent few who produce FOSS deserve admiration especially when wrestling with the esoteric aspects of POP, IMAP and SMTP.

No doubt, I was thankfully using mostly FOSS components but I rolled my own SMTP solution a while back and it was hard to get right, especially dealing with how the format deals with multipart etc.

Re: How to Build an Email Client

#16

Whatever you do when you build your client, do me one UI favor: Reverse the fields when composing. Body, then subject, then addressees, then the Send button. Think of all the headaches due to accidentally-sent mails the world over.

No, please don't, here is one voice against "let's do it totally different for idiots". Next you want to have 3 confirmation dialogs "do you really want to send" followed by "did you prove-read your mail again?" followed by "you clicked YES too fast, go back to start and prove-read again".

Also, worst thing you actually can do is to put the save/send/ok button on the bottom when all other UI elements are on the top of the UI (which is usually the case in mail clients).

Re: How to Build an Email Client

#17
post #9

The biggest frustration I have with gmail is multiple account management. This chrome plugin isn't perfect, but works really well. https://chrome.google.com/webstore/detail/checker-plus-for-g...

Chrome profiles are perfect for managing multiple accounts. I have one profile for each email account, and it works beautifully. The multiple sign in stuff never worked quite right for me.

Re: How to Build an Email Client

#18
post #16

Whatever you do when you build your client, do me one UI favor: Reverse the fields when composing. Body, then subject, then addressees, then the Send button. Think of all the headaches due to accidentally-sent mails the world over.

No, please don't, here is one voice against "let's do it totally different for idiots". Next you want to have 3 confirmation dialogs "do you really want to send" followed by "did you prove-read your mail again?" followed by "you clicked YES too fast, go back to start and prove-read again". Also, worst thing you actually can do is to put the save/send/ok button on the bottom when all other UI elements are on the top o…

I don't think slippery-slope is an appropriate argument to make here, or really anywhere.

To answer the UI elements on the bottom, I'm not sure I actually press the Send button at all, instead opting for a keystroke depending on the client. The physical analogue I base my request off is the order I fill out a letter or card--I write my message, then I sign it, and then I seal and address the envelope.

Beside that, what's to keep a hypothetical upside-down mail client from putting all of its control elements on the bottom of its interface?

Re: How to Build an Email Client

#19

Very recently I built a little desktop email client. It was...interesting. And hoary. And fraught. Very interesting though, I think everyone should have a crack at writing a basic SMTP library at some stage just so they appreciate the benevolence of anyone happy enough to sit and go through RFC guidelines. Node seems like a far better choice for the project than Rails, no hate for RoR from me but Node is pretty much…

But... SMTP stands for SIMPLE Mail Transfer Protocol.

Re: How to Build an Email Client

#20

Very recently I built a little desktop email client. It was...interesting. And hoary. And fraught. Very interesting though, I think everyone should have a crack at writing a basic SMTP library at some stage just so they appreciate the benevolence of anyone happy enough to sit and go through RFC guidelines. Node seems like a far better choice for the project than Rails, no hate for RoR from me but Node is pretty much…

But... SMTP stands for SIMPLE Mail Transfer Protocol.

Depends on what you are comparing it to. LDAP stands for Lightweight Directory Access Protocol. I don't think that anyone would consider LDAP lightweight, but compared to X.509...
Post reply on HN