image of an old-fashioned mail chest

Having my email server here at the island place set me to thinking about the history of email protocols on the internet.

The original email protocols were set up in a time when one didn’t simply assume that an email server would be reachable 100% of the time. It was common for some of the dozens (dozens!) of internet-connected machines to work by periodically dialing in to another machine, transferring data, then hanging up. Those phone calls were expensive — even local calls were metered for businesses and long-distance was super expensive, so for many folks it wasn’t an option to just stay connected 24 hours a day.

If you ran an email server, the protocols allowed you to have multiple mail exchangers (mail servers with store-and-forward capability) with varying priorities so that if your primary server couldn’t be reached, sending servers would traverse the list of exchangers in priority order until they found one that was up and connected. When your primary server connected, it could poll for (or be pushed) email from the exchangers. The code is still in place to make that happen, but it’s rarely used anymore since spammers started trying to abuse that system to sneak their spew past filters.

Timeouts used to be a lot longer, too. When I first ran a server, the sender of a message that didn’t go through right away wouldn’t get a delivery status notification for about four hours, and the notification would then say that the sending server would keep trying for three days. Now, everyone just assumes the net is at near 100% connectivity near 100% of the time. I got a status notification from Google once because they couldn’t deliver a message for 20 minutes.

Email is supposed to be asynchronous communication. I get that shorter timeouts let senders know if they’ve used a bad address or something, but back in the day it wasn’t rare to have emails delayed for days just by the normal functioning of the networks.

My internet connection is fast (nearly 1 Gbps symmetrical) and seems reliable, but I’m also at the end of about six miles of fiber, much of which is strung on poles adjacent to many, many eucalyptus trees. Occasionally, a tropical storm will push winds from the opposite direction they usually blow, and often that will knock down a big, old eucalyptus which can then take out the fiber. The ISP is responsive, but they’re also busy after storms. It remains to be seen what happens to my mail delivery when the bad weather comes.

There is also the problem of dynamic IP addresses, which definitely wasn’t a thing for the early ‘net. My ISP doesn’t even seem to know what a static IP address even is, let alone how to give me one. I made a workaround using a cloud server to provide a stable IP address though which all email traffic gets routed. That has the advantage of allowing me to use my satellite system (once it arrives; it’s on the boat) as a backup for the mail server, even though the satellite uses carrier grade NAT to assign IP addresses, which generally doesn’t work very well for mail servers.

So I’m hoping that the fact that my mail server will sometimes be unreachable for a few minutes won’t cause any problems, thanks to the robustness of protocols designed for a simpler time.

—2p

← previous|next →