[exim-dev] [Bug 420] New: An expansion operator that encodes…

Top Page
Delete this message
Reply to this message
Author: World Wide Web Owner
Date:  
To: exim-dev
New-Topics: [exim-dev] [Bug 420] An expansion operator that encodes to modified UTF-7, [exim-dev] [Bug 420] An expansion operator that encodes to modified UTF-7, [exim-dev] [Bug 420] An expansion operator that encodes to modified UTF-7
Subject: [exim-dev] [Bug 420] New: An expansion operator that encodes to modified UTF-7
------- 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