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

Reply via email to