Comment 140 for bug 849416

Revision history for this message
In , Markus Kuhn (markus-kuhn) wrote :

This seems really a bug in Microsoft Exchange, not a bug in Thunderbird. However, since so many people send out event invitations via Exchange, it seems other MUAs have added special-case algorithms to deliberately violate the MIME specification if the sender was MS-Exchange and show multiple multipart/alternative parts simultaneously if one of them is an ICS calendar and the others are text/plain or text/html.

The problem is that Exchange sends out calendar invitations as

Example A:

- multipart/alternative
  * text/plain
  * text/html
  * text/calendar

even in cases where the text/plain and text/html parts are empty, or otherwise are no legitimate representation of the same information as the calendar file (e.g., just a human written cover message).

In an ideal world, where Microsoft respected Internet standards, Exchange would instead have sent out

Example B:

- multipart/mixed
  * multipart/alternative
    o text/plain
    o text/html
  * text/calendar

This way, the client would always display either the plain-text or HTML cover letter (which presumably are just alternative renderings of exactly the same information), plus show below that the ICS file as a proper attachment.

But since Exchange sends out so many inappropriate Example A messages, it may be worthwhile to add circumvention code. Thunderbird could detect the structure of Example A and convert it into the structure of Example B before displaying it. That transform can be made conditional to the presence of header fields (such as
regular expression /^x-ms-exchange-/i), such no messages sent my non-Microsoft products are affected.

I can forward example messages.