File: Plugins.Listescape.txt

package info (click to toggle)
dovecot 1%3A2.3.19.1%2Bdfsg1-2.1%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 58,428 kB
  • sloc: ansic: 560,761; makefile: 7,838; sh: 5,908; cpp: 1,557; perl: 306; python: 255; yacc: 153; xml: 151; lex: 147; pascal: 27
file content (64 lines) | stat: -rw-r--r-- 2,405 bytes parent folder | download | duplicates (3)
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Listescape plugin
=================

The Listescape plugin allows users to use characters in mailboxes names that
would otherwise be illegal (due to the underlying mailbox storage), for
example:

 * Maildir++ layout disallows using the '.' character (unless LAYOUT=fs is
   used), since it's used internally as the folder hierarchy separator.
 * The '~' character at the beginning of the mailbox name is disallowed,
   because of the possibility that it gets expanded to user's home directory.
 * The '/' character is disallowed on POSIX systems.

The Listescape plugin allows you to use all of these characters, as long as the
virtual separator (i.e. what is set by the separator= setting and used as such
by the IMAP protocol) is changed to something else, which means that the plugin
does *not* make it possible to use the virtual separator in folder names.

The characters are escaped to the mailbox name as \NN hex codes.

So what would be a good hierarchy separator to use?

 * '.' and '/' are very commonly used and should work everywhere
 * '\' is used by Exchange, and should also work everywhere (when specifying
   this in the separator= setting it must be quoted, so one sets separator =
   "\\")
 * '^' is used internally by Thunderbird and causes some trouble with it
 * others?

Examples
--------

Allow '.' characters with Maildir++ layout when virtual hierarchy separator is
changed to '/' (it could be anything else except '.' itself):

---%<-------------------------------------------------------------------------
mail_plugins = $mail_plugins listescape

namespace private {
  separator = /
  inbox = yes
}

plugin {
  # The default escape character is '\', but you can change it.
  # Note that even here the expansion of % takes place, thus you need to
  # use "%%" if you want to have the % sign as the escape character.
  #listescape_char = "\\"
}
---%<-------------------------------------------------------------------------

Allow both '.' and '/' characters when virtual hierarchy separator is changed
to '$'. The '$' has to be quoted to avoid variable expansion.:

---%<-------------------------------------------------------------------------
mail_plugins = $mail_plugins listescape

namespace private {
  separator = "$"
  inbox = yes
}
---%<-------------------------------------------------------------------------

(This file was created from the wiki on 2019-06-19 12:42)