20 ms·
Ask HN: How hard is it to build an Email client?
I'm venturing in unknown territory here.
Also I'm wondering if all protocols are easy/hard to support E.g. SMTP, IMAP, POP3.
- informatimago 11y agoSMTP is easy. POP3 is easy. IMAP is more complex. Building a simple email client (say, like mail(1), even including SMTP and POP3 instead of local delivery) is rather easy. It could be a nice programming project for first year (2nd semester) students, I'd say. Of course, you can complexify things, adding GUI, IMAP, MIME, displaying inline attached files (pictures, pdf files, etc), SSL/TLS, dealing with local mail folders, spam filters, automatic mail sorting, including an wysiwyg editor, message encryption with key management. But the basic mail(1)-like client using SMTP and POP3 is easy.
- pestaa 11y agoIf you mean a full-fledged desktop application, it is very hard. SMTP/POP3/IMAP will be walk in the park compared to the challenges you face designing the UI.
- TheDom 11y agoTake a look at LibEtPan, an open source Mail framework for C: https://github.com/dinhviethoa/libetpan https://github.com/dinhviethoa/libetpan This is by one of the guys from Sparrow (RIP) [1] and powered it under the hood. [1] https://en.wikipedia.org/wiki/Sparrow_(email_client) https://en.wikipedia.org/wiki/Sparrow_(email_client)
- stevekemp 11y agoA lot of this will depend on your language/environment. There exist client-libraries for IMAP, POP, etc. But if you don't have those then implementing them will not be so difficult. The truly hard part is dealing with emails themselves, both in terms of MIME, and the bastardized broken things people will send you - malformed headers, missing headers, etc, etc. I wrote a modal console-based Email client, completely scriptable via lua: http://lumail.org/ http://lumail.org/ It was more work than I expected, but also fun. So there are compensations. (Obviously graphics make things harder, with threading, etc, but if you can handle the core you should be able to wrap a GUI around it.)