4 ms·
There's a whole world of email mess that the article didn't even touch on: ambiguity, for example by repeating headers with conflicting values. For example, yo
by perlgeek 2y ago
There's a whole world of email mess that the article didn't even touch on: ambiguity, for example by repeating headers with conflicting values.
For example, you could have, in an email:
Content-Type: text/plain
Content-Type: text/html
now, maybe a virus scanner will think that the email is plain text, but the recipient's email reader parses it as HTML.
Same potential confusion with Content-Transfer-Encoding.
And then there's the matter that headers are supposed to be ASCII-only, but what happens when you send header values with 8 bits set?
And then there is how email threads work. Most of the world uses "In-Reply-To" and "References"-headers, but Exchange, in its infinite wisdom, decides to ignore them and has its own proprietary headers.
Basically every aspect of email has very annoying problems, and every attempt at a version 2 needs to either ignore some of them (annoying those particularly invested into this problem), or reinvent the whole wheel, running in Second System Syndrome worries.
It's not easy...
- TylerE 2y agoOh, it's very easy, really, but getting people to accept what it will take won't be. Don't make a federated protocol. Basically every issue with email can be traced to it being federated.
- r3trohack3r 2y agoEmail is not federated It is decentralized
- TylerE 2y agoEmail is absolutely federated. "A federated protocol is a protocol (defined next) that makes it possible for servers to communicate with each other, regardless of who is running those servers." Federated is not a synonym for Mastodon instance.
- wnevets 2y ago"possible for servers to communicate with each other, regardless of who is running those servers." Wouldn't that definition include almost everything on the internet?
- nephanth 2y agoIn whuch sense? Like my backend and my db communicate together, but they're both run by me, so arguably they don't correspond to that sentence
- kevindamm 2y agoI think it's important to distinguish between application layer and lower layers of the stack here. For the lower layers (firmware updates for protocol changes notwithstanding) it is basically all federated, as you say. But at the application layer there are protocols that you can participate in just by knowing the protocol, and others which require knowing a secret or getting included in trusted peers or otherwise filtered to effectively make them proprietary and not federated.
- TylerE 2y agoNo? For a start, it wouldn't include virtually every online game, or any protocol that enforces user sign in, like Discord or MS Teams.
- chuckadams 2y agoFederation implies delegation from a central authority, which makes Mastodon and ActivityPub more “confederated” than anything. Inasmuch that MX records stem from the root servers, email is federated that way, but otherwise it’s decentralized, with every MTA being its own authority. The line is fuzzy.
- pseudalopex 2y agoWords in natural languages develop different meanings. The most common term for a protocol resembling a political confederation is federated.
- azinman2 2y agoThat’s where its power comes in. We already have centralized communication systems.
- immibis 2y agoand they are almost more powerful than email. Look how widely Discord is used, compared to email. Email might have more sites, but outside of corporate reminders, more communication happens on Discord.
- ekianjo 2y agoand Discord can decide to make you pay for it whenever they want in one way or another. like every other proprietary service out there.
- zaxomi 2y agoI can't register an account at discord, negate I'm behind CGNAT and someone else in the region was banned by discord.
- immibis 2y agoI can't register an account at gmail, for the same reason. Not without providing a phone number that hasn't been used yet.
- lelandbatey 2y agoAnd yet, you could try to register with: Yahoo Mail Hotmail Protonmail Fastmail AOL Etc. Meanwhile, if you can't use discord, then You're locked out of all of discord forever. And discord is like the 10th Gen of "hot new chat apps", what do we do when it starts to die (because Discord will probably start dieing in the next 10 years)? Just lose everything in all those discord groups, like we lost ICQ and MSN messenger and AIM and Skype?
- azinman2 2y agoA quick google seems to suggest around 350 BILLION emails are sent PER DAY. The statistics I could find show discord has between 0.8 and 4B messages/day, and those will be far shorter in content than an email. It’s two orders of magnitude behind. Yes a good amount are spam, marketing, scams, etc. But that just comes with the fact that the platform is free and open. Very strange to me to make such a barrier with corp communication. That’s communication too, and most of these corps now have things like Slack aka Discord anyway.
- littlestymaar 2y agoThe problem isn't the federated nature, it's the combination of: - loose standardization, and lack of proper versioning - Postel's law, which is a recioe for disaster Takeaway if you want to design a federated protocol use a “the server chose violence” approach and reject any messages that is not perfectly compliant with the expected input for the given version (which must be part of the protocol itself).
- lxgr 2y agoBasically every issue with purported email alternatives that various parties are trying to shove onto me (usually companies I need to communicate with for work or customer support purposes) is a direct result of them being non-federated, or that purported solution being SMS.
- Aloisius 2y agoContent-Type isn't really an ambiguous case. It's invalid MIME - there can only be one Content-Type header in each part (RFC 2045 sec 3). The problem is, neither clients nor servers want to enforce it because users will complain.
- withinboredom 2y agoI just checked, and it doesn't say anything about how many Content-Type headers there can or cannot be.
- Aloisius 2y agoThe ABNF (RFC2045 section 3) specifies there can be either 0 or 1 in the message headers and message part headers: entity-headers := [ content CRLF ] [ encoding CRLF ] [ id CRLF ] [ description CRLF ] *( MIME-extension-field CRLF ) Where content (section 5.1) is: content := "Content-Type" ":" type "/" subtype \*(";" parameter)
- withinboredom 2y agoI missed that little detail, but even then, it doesn't matter. That just becomes a parse error and any half-decent parser can recover from that error. The important bit is that the spec doesn't specify how to recover, unlike html5, where it goes into great length to specify recovery so browsers are somewhat consistent. So, as the OC mentioned, some systems will recover by keeping the first one and some by keeping the last one, making it so various systems show different things.
- treflop 2y agoAll these problems happen eventually to every spec. Nothing you will build can stop people violating spec.
- perlgeek 2y agoThat's not quite true. There's no way for an IP package to have two ambiguous recipient addresses.
- 7bit 2y agoYour last paragraph reminds me of RSS vs Atom. Replaced a complete mess with a little less complete mess. Nobody calls it Atom feeds as well, leading many people to still offer RSS despite it being the worse protocol.
- 7bit 2y agoYour last paragraph reminds me of RSS vs Atom. Replaced a complete mess with a little less complete mess. Nobody calls it Atom feeds as well, leading many people to still offer RSS despite it being the worse protocol.