File: interop-8bit.rst.txt

package info (click to toggle)
cyrus-imapd 3.6.1-4%2Bdeb12u3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 80,688 kB
  • sloc: ansic: 255,928; perl: 97,730; javascript: 9,266; sh: 5,537; yacc: 2,651; cpp: 2,128; makefile: 2,099; lex: 660; xml: 621; python: 388; awk: 303; asm: 262
file content (37 lines) | stat: -rw-r--r-- 1,716 bytes parent folder | download | duplicates (20)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Why does Cyrus reject 8-bit characters in the headers of my messages?
---------------------------------------------------------------------

8-bit characters are not allowed in the headers of an :rfc:`822` 
message.

## Until release 3.0
We're not about to consider a patch to "fix" the problem of replacing 
8-bit characters with 'X's that doesn't at least supply a default 
character set and properly QP-encode the nonconforming header. 

Another possibility is suggested by Chris Newman:: 

    The correct long term thing to do is to interpret unlabelled 8-bit as 
    UTF-8 if it meets the UTF-8 syntax, and otherwise give it the "unknown" 
    charset label and downconvert to 7-bit using RFC 2047. 
    
    If you want to do 
    something really fancy, you might allow a mapping from the hostname in 
    the envelope from address to a default 8-bit charset (Innosoft's MTA 
    includes an equivalent facility) so the administrator can set up private 
    agreements with specific hosts. 

## Release 3.0 and later
All the rationale for pre-3.0 8-bit character support still applies.

However, Cyrus now optionally *does* accept 8-bit characters in MIME header values
for internal processing, if they are valid UTF-8. For example, this allows Cyrus
to index 8-bit message header values for search or emit them on the JMAP or RSS 
interfaces.

Please note that the original message header values are left as-is. That is,
Cyrus does not attempt to repair improperly encoded headers.

To enable this feature one must enable the `rfc2047_utf8` config option. This
causes Cyrus to interpret any high-bit character as UTF-8. Invalid UTF8
characters are internally processed with the UTF-8 replacement character.