From:
[email protected]
To: everyone.everywhere.all.at.once
Date: Sat, 03 Jun 2023 13:36:59 +0000
Content-type: text/markdown
Subject: Everything Email
Email is not *strictly* accurate, however it's close enough. Really what
I mean is [RFC (2)822][email-rfc]. It's pretty incredible what you can
accomplish with this RFC. You may want to scrape some data into another
read or random access friendly format, but I would be surprised if
90-100% of the things that you generally do on the Internet could not
easily be expressed in terms of the aforementioned RFC.
If you understand a very few things, basically everything else can flow
from that -- build whatever the heck you want to on top of it!
1. Emails are simple, but have a header section that can contain
(arbitrarty)_ metadata.
2. You can combine email messages using the [mbox format][mbox] format.
3. [Links][uri], or URIs (sometimes conflated with URLs, which is fine)
are perhaps surprisingly powerful -- but moreso given the fact that
they provide how to specify a protocol, combined with other
information. Since protocols are how we connect to different
resources, and they can be handled arbitrarily by different programs,
they can be (mis)used in very creative ways.
Let's take some quick examples. You're probably reading this post via
gopher. The original URI for this document would be:
gopher://gopher.waynewerner.com/0/ideas/everything-email.eml
The gopher protocol [doesn't have an email type][gopher-protocol], so
this is would be a text type. It's very unlikely that your client will
do anything beyond rendering this as text. Which is fine! Since as a
human being you can gather the rest of the information yourself.
But if you had a client (built yourself or by someone else) that
understood that the `.eml` extension on this file meant the file should
be parsed and rendered as an RFC 2822 compliant email message then it
would read the header block, [correctly determine the
content-type][markdown-content-type] of this message was markdown, and
render it appropriately, making the links appear as links. I could even
add attachments to this message via multipart message, or create the
HTML rendering myself, or any other manner of (un)wholesome activities.
And all of this with just text! And a client that understands how to
represent it correctly. And of course using markdown (or HTML) I could specify
things like tables, add inline images, specify font sizing and
appearance, and all manner of other shenanigans. And accessibility!
Screen readers do love them some plain text!
---
You may be old enough to remember when Skype came on the scene and you
could make calls from your computer to people's actual phone numbers.
Now in 2023 it's likely that if you see a phone number on a website you
can just click the number and your phone will dial it. That happens when
you get a link that's formatted like this: tel:1-555-555-5555. In HTML
you would write it like `<a href="tel:1-555-555-5555">Call me maybe</a>`.
Want to link to a webpage? https. Want to send an email? mailto. In fact
you can specify some pretty slick behavior with a mailto link: [Say
Thanks!](mailto:
[email protected]?subject=Thank you!&body=Thanks!).
Clicking on that link in a well-behaved client should create a new email
with the subject "Thank you!" and "Thanks!" pre-populated in the body.
Want to tell someone that they need to come get the file from you
personally? Maybe `sneakernet:Ronald
Frobnitz?passcode=12345&file=super+secret#some-part-of-the-file` could
be handled by your client to print out a map to your location along with
the credentials that they need to get into your building.
That issue tracking system that you have? It could just be a series of
email messages, complete with attachments, and whatever metadata you
want to attach.
That social media you use? Same.
So now you can /really/ mean it when you say, "This could have been an
email"
-W
[email-rfc]:
https://www.rfc-editor.org/rfc/rfc2822
[mbox]:
https://www.rfc-editor.org/rfc/rfc4155
[uri]:
https://www.rfc-editor.org/rfc/rfc3986
[gopher-protocol]:
https://www.rfc-editor.org/rfc/rfc1436
[markdown-content-type]:
https://www.rfc-editor.org/rfc/rfc7763