diff -ur cyrus-imapd-2.2.12/lib/imapoptions cyrus-imapd-2.2.12-patched/lib/imapoptions --- cyrus-imapd-2.2.12/lib/imapoptions 2005-02-28 14:24:31.000000000 +0100 +++ cyrus-imapd-2.2.12-patched/lib/imapoptions 2005-02-28 14:25:17.000000000 +0100 @@ -95,6 +95,10 @@ { "afspts_mycell", NULL, STRING } /* Cell to use for AFS PTS lookups. Defaults to the local cell. */ +{ "allow8bitheaders", 0, SWITCH } +/* Allow 8bit ASCII characters in headers of e-mail. Is only checked if + reject8bit is off (see reject8bit below). Defaults to off. */ + { "allowallsubscribe", 0, SWITCH } /* Allow subscription to nonexistent mailboxes. This option is typically used on backend servers in a Murder so that users can --- cyrus-imapd-2.2.12/imap/message.c 2004-09-16 19:58:54.000000000 +0200 +++ cyrus-imapd-2.2.12-patched/imap/message.c 2005-02-28 13:35:14.000000000 +0100 @@ -227,6 +227,7 @@ int n; int sawcr = 0, sawnl; int reject8bit = config_getswitch(IMAPOPT_REJECT8BIT); + int allow8bitheaders = config_getswitch(IMAPOPT_ALLOW8BITHEADERS); int inheader = 1, blankline = 1; while (size) { @@ -265,7 +266,16 @@ } else { /* We have been configured to munge all mail of this form. */ - *p = 'X'; + if (allow8bitheaders) { + /* We allow all mail with 8 bit headers + and do not force our users to change + the way of the world because of one + stupid rfc 2046 (or was it 2047?) */ + } + else { + /* We replace each 8bit-Char with X */ + *p = 'X'; + } } } } --- cyrus-imapd-2.2.12/lib/imapopts.h 2005-02-14 18:59:46.000000000 +0100 +++ cyrus-imapd-2.2.12-patched/lib/imapopts.h 2005-02-28 13:35:06.000000000 +0100 @@ -19,6 +19,7 @@ IMAPOPT_ADMINS, IMAPOPT_AFSPTS_LOCALREALMS, IMAPOPT_AFSPTS_MYCELL, + IMAPOPT_ALLOW8BITHEADERS, IMAPOPT_ALLOWALLSUBSCRIBE, IMAPOPT_ALLOWANONYMOUSLOGIN, IMAPOPT_ALLOWAPOP, --- cyrus-imapd-2.2.12/lib/imapopts.c 2005-02-14 18:59:46.000000000 +0100 +++ cyrus-imapd-2.2.12-patched/lib/imapopts.c 2005-02-28 13:35:06.000000000 +0100 @@ -35,6 +35,7 @@ { IMAPOPT_AFSPTS_MYCELL, "afspts_mycell", 0, {(void *)(NULL)}, OPT_STRING, { { NULL, IMAP_ENUM_ZERO } } }, { IMAPOPT_ALLOWALLSUBSCRIBE, "allowallsubscribe", 0, {(void*)0}, OPT_SWITCH, { { NULL, IMAP_ENUM_ZERO } } }, { IMAPOPT_ALLOWANONYMOUSLOGIN, "allowanonymouslogin", 0, {(void*)0}, OPT_SWITCH, { { NULL, IMAP_ENUM_ZERO } } }, + { IMAPOPT_ALLOW8BITHEADERS, "allow8bitheaders", 0, {(void*)0}, OPT_SWITCH, { { NULL, IMAP_ENUM_ZERO } } }, { IMAPOPT_ALLOWAPOP, "allowapop", 0, {(void*)1}, OPT_SWITCH, { { NULL, IMAP_ENUM_ZERO } } }, { IMAPOPT_ALLOWNEWNEWS, "allownewnews", 0, {(void*)0}, OPT_SWITCH, { { NULL, IMAP_ENUM_ZERO } } }, { IMAPOPT_ALLOWPLAINTEXT, "allowplaintext", 0, {(void*)1}, OPT_SWITCH, { { NULL, IMAP_ENUM_ZERO } } },