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)