Comment 25 for bug 373083

Revision history for this message
Petr Hroudný (petr-hroudny) wrote :

Yes, when the footer is attached via MIME, the original message is kept 'as is' - i.e. both charset and CTE are correctly preserved.

Anyway, it would be a pity do this this always for any list, since there are lot of situations where the footer could be safely added without any changes to the message properties. These are:

- message and footer are in similar languages/charset (iso-8859-1 covers most of western Europe)
- footer is in pure ASCII (fits into any message, a typical case for global mailinglists)
- message is in UTF-8 (any footer fits)

Thus I'd say mailman should try to append the footer and attempt to encode the result into message charset at first place.
I also fully agree with Barry that if this fails, it's far better to append the footer via MIME than changing charset/CTE of the message - and this will also solve Mark's concern against changing CTE from 7bit into 8bit.

So my final proposal (at least for MM2.2 and above) is:

1) try only MCSET, if this suceeds, preserve CTE accoding to my patch
2) if the above fails, attach footer via MIME

The above will preserve message charset and CTE at all times, and will avoid problems with MUAs not showing attachments in most cases.

Now the question is what to do for MM2.1. I still believe that trying LCSET first is just plain wrong. MTA/listserver is not supposed to modify message charset during transfer, as this beaks the assumption that the sender is always able to read messages in the charset it uses for sending. Due to this, people in the iso-8859-2 region are often getting garbled messages from iso-8859-1 lists or vice versa - a typical example is having e.g. "Č" replaced by "C(" or "?".

 I'm quite surprised that noone complained by now, but this probably confirms your point that most mailinglists simply don't care. If that's really the case, then changing this back to MCSET shouldn't be a problem, unless someone actually "abuses" footer to do things it was never meant for. Of course I have no problem keeping an exception for Japanese, which need LCSET first for very specific reasons not applicable to any other language.