JSON Email Proposal
A recent HN article titled Email Will Last Forever sparked yet another email discussion that I couldn’t resist participating in. But as I began to comment, I quickly realised that a full-blow medium posted is needed.
As someone who has been developing an email service for the past few years, my biggest issues with email aren’t related to the inefficient, insecure and cranky protocols it’s based on — SMTP, MIME, IMAP. At the end of the day there’s enough libraries out there to handle this craziness. The real problem is the lack of standards around email bodies themselves, in particular:
- HTML Emails. These are the worst for a million reasons. HTML as it stands is not semantic, but a messy formatting language that doesn’t belong in an email. Instead of sending broken web-pages via a messaging system, why don’t we send URLs? Because marketers won’t like that, would they, that’s an extra click. But most users would quite like to know if the email they are opening contains a web-page or a text message before they open it. Don’t even get me started about the fact that 90% of your inbox storage space is taken up by these.
- Quoting. There’s no standardised way of quoting emails, and clients often use users native OS language to do so. Moreover the quoting indentation isn’t semantic but a complete hack that is nearly impossible to parse (for computers or humans).
- Signatures. No standard way of specifying signatures, which are really meant to contain contact details of the author of the message.
These features have been bolted on to email purely as an after-thought. Given that MIME E-mail format can support multiple content types, why don’t we introduce a new JSON E-mail type, and do the above properly, whilst still being backwards compatible?
A simple JSON format would do the trick. We’d need three properties:
- Body. The email body should consist of semantic markup, based on something like markdown, supporting only the basic formatting elements. If you wish to send tables, images, and whole web-pages via e-mail, then put them in a Word doc and attach it, or better yet — host it and send a link instead.
- Author. The vCard format fits perfectly here, or its json version — jCard to be precise.
- Original. Here we can include the original JSON document representing the e-mail to which we’re replying. That document may have its own original attribute, allowing us to represent the whole thread in json.
The above would solve most of my personal issues with e-mail, but perhaps this isn’t something anyone else is really concerned with?