[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cyrus & 8bit headers



Nick Mamashin <nick@sochi-online.com> writes:

> Некоторые письма, в заголовках которых присутствуют русские буковки,
> cyrus превращает в XXX. Как я понял из документации это не глюк,
> а фича в соответствии с rfc 2047. RFC это конечно хорошо
> но письма с сабжем а-ля 'XXX XXXX XX' выглядят не очень хорошо.
> Как тутошний народ борится с этой проблемой - только с помощью
> редактирования сырцов cyrus или есть более красивый способ ?
>

Именно редактированием. Вот патч.

diff -uNr cyrus-imapd-1.5.19/debian/imapd.conf cyrus-imapd-1.5.19.new/debian/imapd.conf
--- cyrus-imapd-1.5.19/debian/imapd.conf        Tue Sep 17 14:29:30 2002
+++ cyrus-imapd-1.5.19.new/debian/imapd.conf    Wed Aug 28 16:18:06 2002
@@ -24,3 +24,7 @@
 
 # umask used by Cyrus programs
 umask: 077
+
+# reject8bit set to 2 will cause to accept broken mail headers
+# value of 1 will reject messages, value of 0 will subst with 'X'
+reject8bit: 2

diff -uNr cyrus-imapd-1.5.19/imap/message.c cyrus-imapd-1.5.19.new/imap/message.c
--- cyrus-imapd-1.5.19/imap/message.c   Thu Oct 29 23:16:31 1998
+++ cyrus-imapd-1.5.19.new/imap/message.c       Wed Aug 28 16:10:42 2002
@@ -209,7 +209,7 @@
     int r = 0;
     int n;
     int sawcr = 0, sawnl;
-    int reject8bit = config_getswitch("reject8bit", 0);
+    int reject8bit = config_getint("reject8bit", 0);
     int inheader = 1, blankline = 1;
 
     while (size) {
@@ -241,14 +241,15 @@
                sawcr = 0;
                blankline = 0;
                if (inheader && *p >= 0x80) {
-                   if (reject8bit) {
+                   if (reject8bit == 1) {
                        /* 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';
+                       /* ugly hack  */
+                          if(reject8bit == 0) *p = 'X' ;
                    }
                }
            }


-- 
	Mon at phobos.loc
	Der kalte Mond in voller Pracht...
	The Moon is Waxing Gibbous (85% of Full)



Reply to: