Exchange is mangling incoming mail, not showing me what the sender sent.
I receive an e-mail which displays "GovernmentâEUR(tm)s". OK, so that's an apostrophe which went badly wrong; I presume it's the sender's fault. Later I happen to spot the same e-mail in a different mailbox, once which doesn't use Exchange. That displays the same text as "Government’s". That's curious. The second example is straightforward UTF-8 bytes being interpreted as Latin-1 (after an apostrophe got turned into a 'smart quote'). Checking the mail's content type confirms it: text/plain with no charset specified. Nothing particularly interesting there. So how come the same mail delivered to Exchange displayed differently (in the same mail client)? Let's check the content type there: "multipart/alternative; boundary="----_=_NextPart_001_01CBDE34.583..." woah, how on earth did that get there? Yup, it's a multipart/alternative message, with text/plain and text/html parts. The copy in the non-Exchange mailbox was definitely a single-part text/plain mail. Maybe I subscribed with different options in each place. To double-check, I bounced the text/plain mail to my Exchange account, and that arrives with a spurious text/html part -- I saw the mail at both ends, and it's definitely Exchange making text/html parts appear out of thin air and acting like they were there all the time! How on earth can anybody think this hateful behaviour is the right thing to do?! I appreciate that some people prefer the additional formatting capabilities that HTML mail offers, BUT AUTOMATIC TRANSLATION FROM A PLAIN TEXT ORIGINAL DOESN'T HELP WITH THAT. Anything Exchange can do which affects how the mail is displayed could also be done by a mail client displaying the original, unmolested, plain text message -- something that wouldn't involve misrepresenting what the sender sent. And what about the plain text part? It's now gained a charset=iso-8859-1 parameter, and characters not in that character set have been transliterated to Ascii representations — "€" to "EUR", "™" to "(tm)", and so on. Which means even if I ignore the spurious text/html part and look at the text/plain 'original', it's no longer the same as the sender sent. Which also means it's no longer fixable. Yes, the sender omitted a charset parameter, but with this line in my muttrc I can type a single character to fix that, making the curly quote apostrophes magically appear: macro pager U <edit-type>^Utext/plain\;<Space>charset=utf-8<Enter> 'use UTF-8 charset on current message' Clearly that doesn't have a chance of restoring the mail to what the sender intended after Exchange has intercepted it and swapped some of the characters over. Hate! Smylers -- http://twitter.com/Smylers2