1. 59
  1. 20

    SUPER interesting article! There will always be a special place in my heart for Ye Olde Fashioned SMTP. Who among us years ago when the intertubes were new didn’t get a bit of a thrill out of connecting to port 25 and manually crafting an Email that actually sent?

    But I totally agree with everything the author is saying. From that deliciously simple seed an ugly, ugly tree has grown.

    I ran my own domain’s E-mail for over a decade, and then when the spam problem got huge and Google introduced DKIM and the rest it became WAY more trouble than it was worth so I stopped trying.

    I’d LOVE to see a Gemini like attempt at rethinking E-mail with simplicity and extensibility in mind. I think E-mail still has a lot to give the modern world.

    1. 7

      An interesting article, but the ‘requiring a mail server’ bit was a bit odd to me. SMTP was created as a store-and-forward mechanism because most participants in the network had intermittent connections. In practical terms, it very rapidly ended up with an ‘outgoing mail server’ model because some participants did not have an intermittent connection and so the most reliable way of sending email was to relay through one of these so that when the recipient came online the mail would get through. Without that, emails sometimes took weeks to deliver because neither the sender nor receiver were ever online at the same time (particularly true when they were in different time zones). I remember in the early ‘90s it taking ages to send an email from a company in the UK to one in Japan because both sent and received email directly and were never connected at the same time. It was only sent eventually by having someone sit in the office and press the button late in the evening to dial up to the ISP and then actually be able to send the mail. One of the first services that my ISP at the time (Demon) provided was an inbound SMTP relay. They gave you a static IP and you could run an inbound SMTP server on your machine, but since dial-up Internet was expensive and people wanted email to actually work, if you weren’t connected then they’d sit something on port 25 on your IP and it would store all of your incoming emails until you connected, then forward them to you.

      The complaints about IMAP and offline working are also somewhat missing the point. This has nothing to do with the protocol, these behaviours are due to the fact that it is an incredibly hard problem. It was easier in the past when people typically had a desktop computer that received email. It could perform offline operations with a snapshot of the IMAP state and just replay them when they connected. Now, most people have at least two devices that read email. What happens if both are offline and they each move a mail to a different folder? Should it be copied to both? Should both raise an error (not actually possible)? Should whichever goes online first succeed and the other fail? That’s the simplest possible case. What happens if one client deletes an email that another moves? What happens if two clients apply different labels to a message (should they both be applied? What if one of them is ‘Urgent’ and one is ‘Non-Urgent’?

      Synchronizing state across multiple clients operating with offline snapshots is an incredibly hard problem. This is what things like git are designed to do and they mostly bail out and punt the problem to the user in all except for the most trivial cases. Apple used to provide a Sync framework for this kind of use case, which supported arbitrary data models. They got rid of it some time around 10.7 or 10.8 because it was incredibly hard to use correctly and Internet connections were so common that it was generally simpler to just do online operations or have an explicit master/replica model where changes in one were always overridden by the primary entity in the system.

      1. 6

        I agree with parts. GMail is definitely a trap, but after some tweaking I did get mbsync working fine. It only is broken if I need to restore mails into GMail, and the fault lies with GMail. There is a bit that seems to suggest you need postfix to send, but you only need mstp to relay out via GMail. I haven’t seen a need for a local IMAP server… I like that my emails are stored in flat files because I’ve done some things that really needed that before. I only wish I could go back in time and have chosen Fastmail for email.

        The spam issue is correct. Most of it is either companies relentlessly emailing me and making it hard to subscribe (I particularly want to shame Hanes and Mack Weldon. No one needs almost daily emails from Hanes.), or cold calling marketers, who have taken to ‘this is the last email I will send’ shortly followed by more emails. I basically never see my email shared with partners–and I use unique addresses for each registration. I get a lot of unwanted mail because I am not motivated enough to fight it and it is easier to just delete it in mutt in weekly cleanup sessions, and then those deletes get pushed to GMail. That is one habit I’ve developed–skimming email for urgent things and then handling less urgent stuff in batches. I’m not sure I need linkedin anymore, but they are very chatty. I have to have Facebook, but they are maddening with friend suggestions to my phone and email that just are not even good guesses.

        The problem is that leaving email migrates me farther from sources of information that survive over time. Usenet has only a few active communities, forums are even dying in favor of things like slack and discord that are extremely hard to export data from if it is possible at all–knowledge just disappears now. Scrolling to the top of a slack channel is so very slow, and then they only preserve things for a while. I had an immediate negative response to discord, so I am not authoritative on it other than it never showing in search results. Things don’t get indexed and search engines think they are smarter than me and then may require you to use just the right phrasing to find what you want. It has turned me into a link hoarder.

        I do however have emails and list emails from the early 2000s (it would go back to the 90s, but there was an incident.)… And lists are great at providing web archives.

        I am not very confident that things sent over a Gemini inspired mail system will persist over time or not end up in the same email spam war if at all successful.

        I think really that what the internet is has just evolved over time, and I’m getting old. Just like my music collection stagnated mostly, my tastes in how I use the internet have not kept up with how it has changed. I have respect in Gemini as an enclave for some, but it also has NIH problems. I think the lower stress solution to email is to just do it in batches and not stress over inbox 0. And actually, as some online communities disappear and I am sad, I also do find new stuff that I like or double down on old haunts.

        I guess that’s my rant response to a rant about email.

        1. 5

          I think really that what the internet is has just evolved over time, and I’m getting old. Just like my music collection stagnated mostly, my tastes in how I use the internet have not kept up with how it has changed. I have respect in Gemini as an enclave for some, but it also has NIH problems. I think the lower stress solution to email is to just do it in batches and not stress over inbox 0. And actually, as some online communities disappear and I am sad, I also do find new stuff that I like or double down on old haunts.

          Just want to gently push back a bit on this. I personally think there is WAY too much “Meh” going on in tech right now.

          E-mail has problems as it currently exists mostly due to the way things evolved over time. If someone is actually thinking about making a fresh start and potentially fixing some of these problems, why not support them?

          1. 5

            If someone is actually thinking about making a fresh start and potentially fixing some of these problems, why not support them?

            If the plan is to fix things for everyone, then the effort is doomed to fail because of path dependence and network effects, and I’m therefore uninterested. If the plan is to fix things for a few nerds who are willing to pour a lot of effort into their communication stack, then I’m uninterested because that group doesn’t include me.

            Either way, I’m unaffected. And I think that is, more or less, how most people feel.

            1. 5

              You’re making the assumption that SUCCESS == widespread adoption.

              I would argue that even an attempt at fixing some of the larger issues is a success whether or not it sees wide adoption because even in failure we gain anti-patterns and counter-examples we can use when we enact an actual fix further down the line.

              Tech has a negativity addiction, and I think it’s both unhealthy and counter-productive.

              1. 3

                That’s fair. To be clear, I wish all of these people well, I’m just not holding my breath that I’ll ever actually be able to use any of the stuff they’re building.

              2. 5

                If you are unaffected and uninterested either way, why not just look away and move on? Why make a point of saying you think it’s going to fail or is uninteresting?

              3. 5

                Just want to gently push back a bit on this. I personally think there is WAY too much “Meh” going on in tech right now.

                Too much “meh”? Every other post on every tech news aggregator I’m on is talking about how tech is destroying the world.

                I think the true answer here is that, the mindshare behind Email is gone. Valuable content is being created on places like Slack, Discord, Matrix, Discourse, Zulip, Reddit, and Twitter. From the start, these platforms cut these problems out of the solution space, so most folks don’t have to think about these problems. As @b1twise mentioned

                I think really that what the internet is has just evolved over time, and I’m getting old. Just like my music collection stagnated mostly, my tastes in how I use the internet have not kept up with how it has changed.

                To some extent, I think an effort at “reviving” email for email’s sake is really an attempt to fix a social problem with a technical solution, without meaningfully addressing email’s competitors/descendants. I think https://delta.chat/ takes a more reasonable approach here in solving a specific subset of usecases via Email.

                1. 2

                  Respectfully, I reject the assertion that E-mail isn’t worth saving because chat, reddit, and Twitter.

                  These are fundamentally different technologies with different characteristics and use case, and I’ll also note that each of the services you cite are:

                  • Not decentrailzed
                  • Not open source
                  • are all, except for Slack, struggling to monetize themselves.

                  E-mail is distributed, open standards compliant and not reliant on a single source server platform which will cause the entire thing to vanish if a company goes under.

                  Saying “None of the cool kids are using it so it’s irrelevant” is not a particularly compelling argument to me.

                  Also, this argument in my mind anyway has VERY little to do with judging the merit of an alternative technology that shares some of E-mails goals but learns from its mistakes.

                  1. 3

                    I did refer to Matrix, Discourse, and Zulip in the list all of which are open-source, and Matrix is actually decentralized! Discourse does support Email as a first-class way to read and reply to posts, although there’s no way to search through the protocol itself for older messages.

                    I didn’t mean to say that E-mail isn’t worth saving. I think it’s the rare example of a decentralized protocol that still has a lot of mindshare. What I mean to say is that, it’s worth taking a focused use-case and using Email as the substrate for that. A lot of decentralized projects like, say ActivityPub, are focused on creating and promoting the actual substrate protocol, instead of creating a “product” for a user to use. It took Mastodon to really create and popularize the experience around ActivityPub (well kinda, the protocol evolution is a bit messy and there’s lots of prior art here before Mastodon) before ActivityPub itself had worth as a communications protocol. I find that Delta Chat actually focuses on a product experience end-to-end and by doing so gives a compelling user story to use Email. Matrix is also focusing on an end-to-end experience and is developing their protocol alongside their product experience so that there’s a useful product for end-users first and a synchronization and update protocol second. Focusing on the networking and the decentralization is cool for us hackers, but it’s not that useful for actually communicating. What I meant to say was that trying to popularize Email as the “next thing to use” is trying to tackle the social problem of “facilitating communication” and apply a technical solution “use Email” as a result, when what’s needed is a focused application atop Email. Hope that makes some more sense.

                    1. 2

                      Matrix is both decentralised and open source

                      1. 1

                        It is! However it isn’t easy to maintain long term archives of Matrix traffic that I know of, and also @GrayGnome didn’t cite Matrix in his post :)

                        Matrix is awesome, but it’s not the same kind of animal as Email or a modern Email alternative.

                2. 1

                  I recently got a full CLI email client working for gmail with mbsync, fdm and some other stuff. Works brilliantly on macOS. Documented here: https://github.com/elobdog/mailhelp

                3. 4

                  Oh hey, another rant about email. So:

                  • email is hard to setup,
                  • but mostly, Google makes me miserable,
                  • also spammers don’t respect the GDPR,
                  • damn spammers.
                  • someone should really do something!

                  Hey, subscribe to my mailing list!


                  1. 2

                    OP here. Fair point!

                    Need to mention that I love email and would like to do everything by emails. As pointed, the rant was part of a bigger story about what I’m currently working on but it became too dense so I posted it separately.

                    For my mailing-list, I’ve a very strong ethic: it should be exactly like the RSS feed. One mail = one post. And I delete manually every unsubscribed member. I’m also planning to work on a mailing list system where you would not have direct access to the list of subscribers and where unsubscribe would be immediately deleted and silenced. (it’s weird that I had to configure the system to not receive a mail each time someone unsubscribe).

                    I liked when everybody was subscribing through RSS but, unfortunately, it’s not very popular those days.

                    1. 1

                      Oh, I love email too and use it to discuss with some friends, where we take the time to think before we write. I used to send letters on paper when I was younger, if that gives some context. :)

                      Most of the world has moved to instant messaging though (which comes with its own set of issues), ❤️ buttons, and emoji reactions. I fear that you’re preaching to a very small bubble, but I’ll read what comes next of course.

                      1. 2

                        Mastodon then Gemini taught me one thing : we don’t need a monopoly to be useful (unlike what every startup story told us). We don’t need to convince the world. We just need to accept to make the tool we want so we can’t minimize our interaction with the tools we don’t want.

                        May I mention the book “Digital Minimalism”? It’s a very good read to think a bit about “what do I really want out of those tools? And how can I get most of what I want with less inconvenients”.

                  2. 4

                    I get most of this post and agree with it, but one part confused me - what’s wrong with the local IMAP server? It seems like the most reasonable way to do separation of concerns - either every desktop and web client needs to both implement and agree on every storage system and indexing (which is not even standardised), or we can do layered approach. I find the storage-transfer-presentation chain very nice and technically clean. (Similar to block_device-filesystem-file_manager)

                    What are the reasons against it? (Apart from me wanting JMAP finally)

                    1. 3

                      Firstly, it means having to install and configure a local server on a home machine to access some local files. While it’s not a major problem, it’s clearly an overhead in term of configuration, preformances and a security risk. That’s a very high cost just to access files which are already there. Not to mention the increased error surface of the whole thing.

                      Secondly, it means having N+1 copies of your emails where N is the number of email clients you use. Indeed, each client will built its own cache. That, alone, might be a killer for many users.

                      1. 2

                        I’m not sure what the exact scenario is, here.

                        For me: I run a mailserver. It throws mail, by default, into ~/Maildir/, or otherwise by request of sieve or .forward directive.

                        mutt uses the local Maildirs. Everything else uses Dovecot’s IMAP/SSL to read the local Maildirs: Thunderbird, K9mail, Rainloop, whatever. Those things tend to have local caches but not complete copies.

                        For Rainloop, a webmail client running on the same server, access is via the same IMAP/SSL as everything else. If I were running that or similar as my only mail client, offering it IMAP over a loopback address would cut down on an SSL encode/decode trip. There are webmail things that want to run a daemon to read Maildirs or mboxes or such, but I haven’t found a benefit in them over Rainloop’s simplicity.

                    2. 4

                      Claws Mail offers a great offline-mode with a single button-press. I often use it to sync up in a WLAN, go offline and then reply to all new E-Mails, sort them, etc. while offline (in the train, etc.), going online later, which then syncs everything up neatly.

                      Regarding SPF/DKIM/DMARC: To be honest, I didn’t find setting them up particularly difficult compared to setting up postfix and other software on the server itself. When I received my first DMARC-reports I was surprised how many servers were trying to impersonate my addresses. Despite lots of complexity, mail still works, and I never have issues sending E-Mail from my own mail-server to any of the big players. It used to be different a few years ago, but it has become much better.

                      Having hurdles like SPF/DKIM/DMARC, not being able to send from a domestic network, etc. is all necessary, because at the end of the day, how else should you be able to distinguish the spammers? In a way, the effort put into these authentication-methods is the price you pay to be able to be accepted as a player in this network.

                      I see no way how something could replace E-Mail, even though I can imagine many things how E-Mail could be improved. Why? Because advertising drives the web and its technologies. It’s one reason why Gopher died. Any improving solution would per definition not become successful as it would prevent such advertisement in some way.

                      I’m an Inbox 0 Taliban and I’m mortified each time I get a glance at a « normal person’s inbox ». It’s basically a long list of companies (lots of Facebook but also local companies) displayed in a long list where only one mail out of ten has been ever opened.

                      We as hackers need to pay the price (=effort) for universal communication (=E-Mail) on our own terms because normies neither understand nor care about its value.

                      1. 1

                        I didn’t find setting them up particularly difficult compared to setting up postfix and other software on the server itself.

                        Heh yeah, configuring mail software really assumes an understanding of mail. Questions like: is this a local recipient, is this a remote recipient, is your mail going through a relay, what’s the retry policy of email, how are bounce addresses configured, will TLS be terminated by the receiving SMTP daemon, are you sending over a UNIX socket/pipe/or TCP, etc. These are all front-and-center with email config, IMO because email just isn’t used by anyone anymore that’s not already very interested in email.

                        We as hackers need to pay the price (=effort) for universal communication (=E-Mail) on our own terms because normies neither understand nor care about its value.

                        I’d like to push back on this thinking. Email is still fairly ubiquitous, albeit captured by the large platforms, among non-technical folks. Usability and configurability improvements could go a long way to encouraging folks to move more of their communications to Email (though I admit, it’s a losing battle in the face of more featureful platforms that don’t have the baggage of Email to deal with). Moreover I challenge anyone to not view “hackers” and “normies” in a dichotomy; there’s more oddballs and privacy sticklers out there than you’d think. To this day, my mostly technologically illiterate father distrusts the Cloud because he’s afraid of what could happen to his data when it’s not in his hands (even though most emphatically, he’s pretty terrible at managing his digital life).

                        I think https://delta.chat is doing a great job at trying to improve some of the pain points around Email for non-technical users.

                      2. 4

                        I just don’t see the problem here. If we’re talking about fellow tech enthusiasts, IMAP servers are old/boring technology; setting up Dovecot is covered in hundreds of guides online (to the point where even blogspam syndicates the articles!) and really doesn’t change much. Setting up a local Dovecot just doesn’t seem that difficult to me. I’ve also been running mbsync for years now and unlike OP have had no issues grabbing my mail or having weird sync failures. In my mind, the bigger issue with Email is just how much the entire architecture is based around the old mainframe design of having multiple users on a machine and having machines talk to other machines (MTAs and MDAs). It’s a very different paradigm than “today’s” (not even today, PCs have been a thing for 40 years) PC/Mobile form of computing where everyone owns their own individual machine, often without good, persistent network connectivity.

                        If you want to use Email in a more async/offline-first fashion, there’s the venerable UUCP which, when paired with ssh, stunnel, or spiped gives you a secure offline-first way of sending and receiving files/data. There’s also the newer (my preference) NNCP project which offers a secure UUCP-like experience with some nice modern conveniences. I’ve even written a silly/extremely basic tool called nmail to send/receive mail over NNCP. I use it to send mail across my machines, and I’m using NNCP pretty extensively right now to fetch Youtube videos and archives of websites, I even have a Telegram bot that lets me send/receive messages over NNCP which I successfully used in a low-internet situation somewhat recently.

                        That said, I really appreciate the history narrative around Email. If nothing else, thanks for talking about all of these issues succinctly and in a way which captures the accidental complexity of the whole system. Thanks for the write-up! Excited to see where this project/these thoughts go.

                        1. 2

                          I’ve thought about this one and off over the years (I run my own email server, and have for over 20 years now) and I’m not sure there’s a good solution. One idea I had was to switch from “pushing email” to “pulling email”. The issue there is knowing where to pull from [1], so some notification is required. I thought a small notification that includes From, To, Date and Subject, with the Subject having a hard limit of, say, 72 characters to keep spammers from including the body of the message into the Subject. But then what’s to stop a spammer from sending N messages, where each Subject is now one line from their email? Okay, get rid of Subject but then the spammers will just use From and To lines to send their body. Okay, make From and To just an email address, nothing more, and then spammers will send a ton of mail from “Hey! Add 3 inches to your mortgage@example.com”, “Just go to example.com/SCAMMEHARDER@example.com” and “And experience bliss today@example.com”.

                          But perhaps I’m just too cynical these days.

                          [1] I do get emails from strangers about my blog. It’s not often, maybe two or three a year, but it does happen, and I don’t want for that to go away.

                          1. 1

                            One of my “not enough time to fit it into this one life probably” ideas from some time ago already is to try and make an email client so good, that ~everyone would be using it (or at least enough people to start having critical mass of social leverage), and then do a “constructive EEE maneouver” of upgrading everyone to some better protocol. Yes, I told you, “somewhat” big idea, including the fact that nobody really even is sure how a “better email” could look yet; but no need to worry about that later step at all for me for now, if I already don’t expect to have enough time to even try writing this better email client. (Including, but not limited to, due to me having some other ideas too, that have somewhat, if not necessarily much, bigger chance of actually panning out…)