sapphyra

anarchist transbian robot girl

  • she/they

Hi! Just a cute trans girl on the internet. I have a plethora of random little hobbies and creative media I like to make stuff in, which I may or may not post when I have time. :3
This girl dreams of being a gamedev someday.
A little bit of a creature.

Going to miss Cohost so much when it's gone. :( Let's carry Eggbug in our hearts...


Discord
@missingfragment

maxdevos
@maxdevos

No two mail servers behave the same. I understand now why every universal email app sucks. It's not their fault, it's virtually impossible to write a mail app that works with all providers and it's mostly Google's fault

There's this thing called IMAP (Internet Message Access Protocol) which all client-based email servers are supposed to adhere to (POP users, log off). The latest version of IMAP is from 2 years ago, IMAP4 v2. The previous update, IMAP4 v1, was published in 2003.

Most email servers still use some variation of IMAP4v1, but with a handful of cursed "modifications". There are hundreds of these addendums and extensions to IMAP4 v1, but they are completely decentralized, largely undocumented, and many of them are completely orphaned. There is not a single, central location where they are collected. Which extensions, and to what extent, any given mail server supports (or requires) is largely up to chance. The only way to determine what capabilities a mail server has is to connect to it directly over telnet, and use god's most cursed syntax to ask it directly. These names are often homebrew though, and frequently don't show up online anywhere.

Here is an example of one such exchange:
A00101 CAPABILITY *
* CAPABILITY IMAP4rev1 UNSELECT CHILDREN XLIST NAMESPACE IDLE MOVE ID AUTH=PLAIN SASL-IR UIDPLUS ESEARCH WITHIN LIST-EXTENDED LIST-STATUS LITERAL ACL- CONDSTORE

Additionally, many server operators [Google, I am talking directly to you] make a ton of internal changes to their implementation of IMAP and don't publish them at all, leaving it up to API developers to try to reverse engineer them.

This is only to speak of IMAP server implementations, arguably the strongest pillar in the Rube-Goldberg machine of modern email standards. Did you know that the default encoding for email is 7-bit? Or that MIME types (the nomenclature that defines different types of web documents) and email headers are totally unregulated, and that people make new ones all the time, and everyone is just expected to deal with them? Or that if you want to have an email that includes a picture, plain+formatted text, and an email signature, it needs not 3 parts, not 4 parts, but 6 parts? Did you know that there's no agreed-upon definition of "simplified HTML", meaning that any mail client can arbitrarily decide what formatting to show and what to strip out? Oh, you want to know what your carefully crafted email is going to look like on the recipient's device? Good one. What's that? You want to include an image in your email that will appear at a reasonable size on all devices, and won't either make the text 2 pixels tall or leave most of the screen empty? Sorry, CSS flex isn't supported in some mail clients, so you'll have to settle for an email that looks like a website designed by a 11 year old in 2003.

A few months ago, I spent a weekend writing a small library to format code snippets with IntelliJ-style syntax highlighting. I was excited to show this off, and included my goregous code block in an email to my boss. To my horror, I discovered that Outlook Web had completely decimated my inline CSS into plaintext (despite my email explicitly defining the correct MIME type, as described by both IMAP standards to the letter), leaving a jumbled, unreadable mess of Consolas text in its place.

I could write page after page about edge cases, bugs, behaviors, and general absurdity of email, and maybe someday, I will.

Despite all of this, I love email. Sure, nearly all the emails you get now are from robots, leaving them in a strange twilight zone, where they aren't quite spam, but they also aren't important enough to justify a notification. Sure, it's comically insecure. It's slow, clunky, ugly, and often unpleasant to use. But, ultimately, it fucking works. Despite everything I just told you, if you send me an email (and you should), I will almost certainly recieve it. My printer from 2004 has print-by-email support, and it still works perfectly with every device I have, several of which are 20 years newer. I struggle to think of any other computational technology that can say the same. Everything speaks email, because in its simplest form, it is nothing more than ASCII messages with a set of extremely forgiving formatting rules.

Email stands alone as an unkillable, irreplaceable, central entity in a vast field of ephemeral peers. It is the nexus from which all other electronic communication flourishes. It is the backup to the backup, an enormous sarcophagus, within which the entire global communication system is held. The world of modern email is a fucking nightmare, but it is a nightmare in the way that the ocean is; too vast to be controlled by any one individual, group, or institution. It belongs, by its volume and complexity alone, to all of us. This isn't for a lack of effort. Many have tried to tame Email, and like those who have attempted to claim the sea, they have been been defeated. In a world influenced by a rapidly shrinking number of increasingly powerful hands, the existence of something as pervasive yet intractable as email is a breath of much-needed fresh air.

Email, and the internet more broadly, is fundamentally just an idea, a set of protocols, implemented in the form of a billion computers. It's just as much ours as it is theirs.

Maybe a better future is still in reach, after all.


You must log in to comment.

in reply to @maxdevos's post:

Email is probably the biggest clusterfuck of all time and on the one hand im thankful because silly little tech!!! But my god Ive had to spend the past few months setting up a custom catch all SMTP Server from the ground up with a front end to display the emails and oh my lord
displaying emails is comically impossible, you have your mime tree which tells you what it is except it is a whole fucking clown car of other mime types and then you think "oh finally i have figured out how to display this" and then a second email client decides that actually that mime tree structure? How about we shuffle all of it??? Yeah sure! Why not! I love technology!!!!!!!!!!
Oh and then you somehow DO write a parser for all of that and then a plain text email hits you and you explode