The Winmail.dat Syndrome

The Winmail.dat Syndrome

For more than a decade, Microsoft Outlook has been acting in a weird way, sometimes sending email content or attachments in a file called “winmail.dat”. Most mail clients were unable to open that strange file.

The logic behind this behaviour is not trivial but the point is that Microsoft was sending mail in a non-standard format. They were guilty of breaking the mail standard and the only sane solution was, obviously, for them to fix MS Outlook.

But it didn’t happened. And people not using MS Outlook received winmail.dat files while Outlook users could exchange information without problems.

Even if it was nothing but a faulty implementation in MS Outlook, some webmails started to transparently convert winmail.dat to a normal mail format: Hotmail, Yahoo and even GMail. It’s not a standard, it’s the sender fault but the receiver is the one who ends complaining. As such, it was fixed on the receiver side. A really bad and disgusting hack.

The result is that a lot of people are now able to receive badly sent MS Outlook emails. If one of your contacts sends such an email to a bunch of friends, only a tiny minority will actually complain.

And because they are a minority, it will be considered that the fault is theirs. “Oh but you are using that strange mail provider/your own server. You are the geek, you do strange things, fix the issue on your side”.

Worst: if you run a business and offer mail services to paying customers, they will complain and get angry at you. They can’t read an email from a potential customer! They are loosing business opportunities because of you! And no, it’s not Microsoft fault : according to the sender, they are the first to complain. And even if it’s Microsoft fault, they don’t care, they just want to read their emails. Which is a perfectly understandable answer.

I call this anecdote the “Winmail.dat Syndrome“. In the Free Software community, we are eager to support standardisation. To blame people who don’t follow a written standard.

But, sometimes, we are blind to the real de facto standard. A standard that might be a piece of shit, a pure accident. A standard that was chosen by nobody. We try to educate people to the fact that their standard is not good, not a “real” one. But, in reality, nobody cares. They just want to use anything that works, even if suboptimal under the hood.

By being picky about using a true written-by-experts standard, we are sometimes only excluding ourselves from the party. We are doing exactly what we are blaming: not acting as everybody else and doing our own protocol that nobody can understand. The fact that our protocol is open and could be implemented by anyone doesn’t matter for the end users. Nobody understands it and we are the troublemakers.

Does it means that we should accept everything and forget about standardisation? Of course not! But shouldn’t we sometimes admit that we’ve lost a battle and that staying “pure” actually harm our end users instead of helping them?

I tend to think that when a project is hurting its users instead of helping them, even with good intentions, something is very wrong about that project.

Creative Commons License
The The Winmail.dat Syndrome by Lionel Dricot, unless otherwise expressly stated, is licensed under a Creative Commons Attribution 2.0 Belgium License.

Show Comments Hide Comments

9 thoughts on The Winmail.dat Syndrome

  1. Balint says:

    Well said.

  2. François says:

    Yep, this is exactly how you end with sh*tty standards like a/qwerty keyboards or diesel engines in cars. De-facto standards are just a way for big private companies to impose their products. De-facto standard is the new tying. So, nope, we are not the ones that harm users.

    Another good example of this matter is MSN. For years, the Free Software Community tried to reverse-engineer the protocol. They spent hours and hours on it because it was “a de-facto standard for IM”, (and the FOSS community was harming their users by not allowing them to use it). And they eventually succeeded. And then M$ bought Skype. And now they are shutting down MSN.
    See, I really believe that people that worked on a free implementation of MSN had better spent their time working on XMPP.

    I have nothing against closed-source programs. But when it comes to communication in whatever way, I really believe open standards and open protocols are the only right way to do things.

  3. Benoit says:

    It looks like you’re just restating the Robustness principle :)

    “Be conservative in what you send, liberal in what you accept”
    http://en.wikipedia.org/wiki/Robustness_principle

  4. j-c says:

    “Does it means that we should accept everything and forget about standardisation? Of course not! But shouldn’t we sometimes admit that we’ve lost a battle and that staying “pure” actually harm our end users instead of helping them?”

    This looks really really subjective: when is it harming, when is it pure ? (I don’t know anybody who is really pure, even the FSF has worked to allow access of non-open protocol/format/… to their users).

    So, yes, your article really means: we should accept everything. Because wherever you put your own boundaries, there will always be someone saying exactly the same thing to you with the same arguments.
    (or you can also be more clear: the objective boundaries are the one I agree on, and everyone who is not agreeing on this is a moron)

  5. Simon says:

    Very reminiscent of the discussions over H.264 support in Firefox. Sure, good open standards would have been nice, but you have to be pragmatic. There’s nothing to be gained by refusing to inter-operate with the rest of the world, just because they’re following a defacto standard instead of a formalised one.

  6. Alex says:

    I work for a company that makes email archiving software, and we have had a lot of fun with TNEF. And by “fun”, I mean “agony”. If it weren’t for a Free Software TNEF extraction program, our experience likely would have been much worse.

  7. It’s always a tricky thing to support what the user expects, while doing the Right Thing(tm).

    For a while, when facing this type of issue, I find what works the most is
    1) provide the desired support (which is sometime painful to implement) but, and perhaps most importantly,
    2) also issue warnings to everybody involved (in your example, the receiver, and maybe even the sender), describing the situation, stating that it is incorrect, and offering a potential, more long-term, solution.

    This is a kind of works-loudly solution, which makes it clear that it SHOULDN’T work, but does courtesy of your efforts.

    This worked well enough for IE<6 websites (:

  8. Leonardo L says:

    François, I think you mispelled “gasoline” (or “otto”) when you said “diesel”.

    Diesel engine is about efficiency and gasoline engine is about power, so if you think truly about corporations or market imposition, I think you are on the wrong side. After all, market chases after horsepower, not fuel efficiency. Diesel is a much better candidate for running renewable fuels, also – it attains higher mileage and is safer than current fuels.

    Take a look at recent developments on electronic controlled fuel injections and catalytic converters, you will see that recent diesel engines meet or exceed emission standards, and are much better in almost every aspect.

    By the way.. this message was written using a Dvorak-mapped keyboard. :-)

  9. scrimp says:

    Leonardo, open your eyes, diesel is far more toxic…. and efficiency is true in European market more r&d on diesel due to higher sales (because of lower taxes)