Welcome, Facebook, to my home of the last thirty years — the wild, wonderful, wacky, wheels-within-wheels world of modern email!
It sounds like you plan to be here for the long haul, so I hope you brought everything you need: good programmers and deep pockets shouldn’t be a problem for you, but you also need people who understand the many important email standards (including the new and emerging ones for domain-based email signatures and non-western character sets for email addresses and domains), the complex interplay between spammers and spam-fighters, and the remarkable variety of ways that email composed on your system will appear on the hundreds of other platforms in the world that might receive it.
From the outside, email seems pretty simple — there’s a To, a From, and a few other relevant fields, right? But almost every aspect of email harbors a “gotcha” — some fundamental, some a legacy of email’s evolution, but all critical if you want to “play nice” and have your email interoperate well with everyone else’s.
Unfortunately, most of these pitfalls are known primarily through Internet folklore; when old email hands get together at an IETF meeting, it’s likely that someone will pass out before anyone runs out of horror stories. If you haven’t hired any experienced IETF email gurus, I urge you to do so, or to start sending your newer-to-email programmers to IETF meetings, or — best of all — both. I hope I’m wrong, but the absence of any Facebook attendees (or anyone from their recent Zenbe acquisition) at the last two IETF meetings makes me fear you may not know what a tar pit you are stepping into.
Here at Mimecast, it is amazing how many violations of the standards we have to cope with every day. When possible we try to work with the offending vendor to fix the problems, but sometimes we have no choice but to simply do our best to cope with their mistakes. For example, imagine that you get a mail message that consists (irrelevancies removed) of:
In the absence of the key MIME header fields “Content-type” and “Content-transfer-encoding” there is really no correct way to interpret this message. Both the body and the subject line violate the 8 bit restrictions of SMTP (assuming the 8 bith extension hasn’t been used), the subject violates header encoding rules from MIME, and the body itself should, technically, be interpreted as US-ASCII, which is just obviously wrong in this case. Worse still, the line “email@example.com” breaks the rules for continuation headers and, arguably, makes the subject part of the body!
For any specific example, a human being can usually figure out how to fix a message, but the variety of mistakes is unbounded and apparently impossible to anticipate. A recent Internet Draft has begun to try to pool community knowledge about these mistakes; I hope your guys have read it carefully!
So, I welcome the facebook team to the never-ending struggle that is a smoothly-operating email service. I look forward to the new ideas you are bringing to the table, and I hope that some of them will prove valuable enough to bring enhancements to the whole community (another reason to come to the IETF meetings). I even hope that you succeed in revolutionizing the email world, because that would be fun to watch. But I don’t think you have much chance of doing that if you can’t first deal with the complexity we all confront today.