------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.
http://www.exim.org/bugzilla/show_bug.cgi?id=420
Summary: An expansion operator that encodes to modified UTF-7
Product: Exim
Version: 4.63
Platform: All
OS/Version: All
Status: NEW
Keywords: work:small
Severity: wishlist
Priority: medium
Component: String expansion
AssignedTo: holmgren@???
ReportedBy: holmgren@???
QAContact: exim-dev@???
Many (if not all) IMAP servers follow
http://www.courier-mta.org/?maildir.html,
which says that Maildir names on disk be encoded as modified UTF-7.
The proposed operator could let users specify folder names in a more useful
encoding in filters (the $address_file variable contains the argument of a save
filter command; this can be transformed at will in the transport).
There is one consideration to make, however. The above URL states that '/' and
'.' can be BASE64-encoded as a way to escape them from being interpreted as
folder or directory hierarchy separators. RFC 2060 (IMAP4rev1) expressly
forbids this (unfortunately) ("Modified BASE64 MUST NOT be used to represent
any printing US-ASCII character which can represent itself."), meaning that
it's not possible to use both '/' and '.' as ordinary characters in folder
names. Nothing prevents IMAP servers from internally encoding the one not uses
as a hierarchy separator, though.
Suggested specification:
${imapfolder_<sep>:<string>}
The string is converted from the charset specified by the headers charset
command (in a filter file) or headers_charset global option to the
modified UTF-7 encoding specified by RFC 2060, with the following
exception: All occurences of <sep> (which has to be a single character)
are replaced with periods ("."), and all periods and slashes that aren't
<sep> are BASE64 encoded. "_<sep>" can be omitted, in which case <sep>
defaults to "/".
Example 1: ${imapfolder:Foo/Bar} yields "Foo.Bar".
Example 2: ${imapfolder_.:Foo/Bar} yields "Foo&AC8-Bar".
Example 3: ${imapfolder:Räksmörgås} yields "R&AOQ-ksm&APY-rg&AOU-s".
As the next step one could allow the escaping of the separator character, using
a possibly specifiable escape character.
--
Configure bugmail:
http://www.exim.org/bugzilla/userprefs.cgi?tab=email