Alessandro Oliveira wrote:

Maybe the best solution would be a filter to change the message body encoding using quoted-printable instead of putting X everywhere, and change headers to also use the appropriate encoding. What do you think about this ?

Christian Schulte escreveu:

Is there any possibility to put this as an autoconf option?

maybe something like: "./configure --enable-strict-headers | --disable-strict-headers" would do the trick,
or even better, a runtime configuration option !!!

what are the REAL consequences of having 8bit characters in the Subject header ?

A> Date: Wed, 20 Nov 2002 09:30:31 -0200
A> To: info-cyrus <[EMAIL PROTECTED]>

A> Hi,

A> I'd like to know if there is a way to avoid this cyrus behavior, my
A> users are getting very angry with it.

A> Thanks for any help,

Yes, users do. And notice about strict 7-bit ASCII within headers
does not help.

Same problem using Cyrillic. I have not found anything else and
used a simple hack. Locate the following 2 files in the source tree: lmtpengine.c and message.c

change them the following way ( by inserting `#if 0' and `#endif' ) and re-compile the entire software.

This eliminates the substitution unconditionally.


lmtpengine.c:

.....
/* ignore this whitespace, but we'll copy all the rest in */
break;
} else {

// HACK -- Violet
#if 0
if (c >= 0x80) {
if (reject8bit) {
/* We have been configured to reject all mail of this
form. */
r = IMAP_MESSAGE_CONTAINS8BIT;
goto ph_error;
} else {
/* We have been configured to munge all mail of this
form. */
c = 'X';
}
}
#endif
/* just an ordinary character */
body[off++] = c;
.....

and message.c:

.....
else {
sawcr = 0;
blankline = 0;
// HACK -- Violet
#if 0
if (inheader && *p >= 0x80) {
if (reject8bit) {
/* We have been configured to reject all mail of this
form. */
if (!r) r = IMAP_MESSAGE_CONTAINS8BIT;
} else {
/* We have been configured to munge all mail of this
form. */
*p = 'X';
}
}
#endif
}
}

fwrite(buf, 1, n, to);
}
.....

In 2.2 cvs you do this in message.c and spool.c

I thought that cyrus does not only replace non US-ASCII characters in the mail-header. If a mail with a specified enconding of US-ASCII gets send through LMTP all non US-ASCII characters in the mail body get replaced to "X" also! My users were not interested in this behaviour if that would only affect the header. The problem is that in e.g. germany all umlauts like ä,ü,ö etc. get replaced in the body if specified as US-ASCII. Of course the mail body specifies a wrong character encoding if sent as US-ASCII but containing umlauts but even a big free-mail-provider (www.web.de) in germany with millions of users sends his newsletter in US-ASCII but with umlauts! I got it done with these small source-changes but this will not change user from sending mail in wrong encodings :-(

That are things which can be done with sendmail before delivering to LMTP but I did not get it done right now! The convert-code in sendmail is quite buggy in 8.12.6 and cannot reliably convert encodings as well. Adding such features to lmtpd in cyrus would be great but I think that this is not a asap-topic.




Reply via email to