Re: [Exim] what is exim's reaction (rfc1652)

Top Page
Delete this message
Reply to this message
Author: Phil Pennock
Date:  
To: exim-users
Subject: Re: [Exim] what is exim's reaction (rfc1652)
On 2002-04-01 at 00:30 -0600, dman wrote:
> | > I have no problem with simply being 8-bit clean rather than
> | > pedantically following the "SMTP is 7-bit" definition by stripping the
> | > high-order bit.
> |
> | No one's "stripping high order bit"s, otherwise I'd get a } or
> | something, instead of an å (notice the beautiful quoted printable on
> | your disk?). 8 Bit transparent is simply being snuffed by the unfriendly
> | 7 bit server.
>
> Umm, you just contradicted yourself, unless I'm mistaken. How would
> you describe "snuffed" in technical terms? I think "clearing the high
> order bit" is the way it is done. (clearing and stripping are
> synonmous in this context) Specifically the C/C++/Java snippet
> 'a_byte &= 0xef ;' though I suppose 'a_byte |= 0x80 ;' would suffice
> as well.


If a program is not 8-bit clean, then the behaviour in passing a
character with the eighth bit set is undefined.

Undefined gives a lot of free reign. ;^) The best example I've ever
heard was from Andrew Main (zefram), who pointed out that invoking
undefined behaviour in a C compiler means that the compiler is perfectly
entitled to make blue with yellow polka-dot elephants fly out of your
nose. The only problem is in the compiler's ability to actually bring
this to pass.

In this case, to rephrase what Tony's saying, any characters which have
the eighth bit set will have some other character substituted in its
place. That other character will not simply be &= 0xef. It might be
any other character; I've not looked closely enough to know what the
actual character will be, in any given circumstance.

Fortunately, _only_ that character will have another character
substituted and the mail will be otherwise unchanged. So if you are
feeding characters in, despite the server not advertising 8BITMIME, then
the mail will at least be mostly readable (unless there are a lot of
accented letters, of course).

I can but say yet again: do not set accept_8bitmime in your Exim configs
unless to know, without doubt, the path which all mails take subsequent
to going through that Exim instance. Incoming mail to a campus, where
you control every MTA and they're all 8-bit clean is a good example of
where this option makes some sense.

The safe option is to simply not set it. That's why the default is
unset.
--
Everything that is written merely to please the author is worthless
-- Pascal Blaise