Capture substrings in ACL regex= . Bug 425.
[users/jgh/exim.git] / doc / doc-txt / experimental-spec.txt
index d446f6b67716c19932c4e29cf4f85d6f5f48d231..317f40101c74f46535d47305290013cde7fb1e25 100644 (file)
@@ -448,6 +448,17 @@ spf_guess = v=spf1 a/16 mx/16 ptr ?all
 would relax host matching rules to a broader network range.
 
 
+A lookup expansion is also available. It takes an email
+address as the key and an IP address as the database:
+
+  $lookup (username@domain} spf {ip.ip.ip.ip}}
+
+The lookup will return the same result strings as they can appear in
+$spf_result (pass,fail,softfail,neutral,none,err_perm,err_temp).
+Currently, only IPv4 addresses are supported.
+
+
+
 SRS (Sender Rewriting Scheme) Support
 --------------------------------------------------------------
 
@@ -795,8 +806,10 @@ expansion is done.  The current list of events is:
  smtp:connect          after  transport  per connection
 
 The expansion is called for all event types, and should use the $event_name
-value to decide when to act.  The variable data is a colon-separated
-list, describing an event tree.
+variable to decide when to act.  The value of the variable is a colon-separated
+list, defining a position in the tree of possible events; it may be used as
+a list or just matched on as a whole.  There will be no whitespace.
+
 
 There is an auxilary variable, $event_data, for which the
 content is event_dependent:
@@ -855,7 +868,7 @@ No other use is made of the result string.
 Known issues:
 - the tls:cert event is only called for the cert chain elements
   received over the wire, with GnuTLS.  OpenSSL gives the entire
-  chain including thse loaded locally.
+  chain including those loaded locally.
 
 
 Redis Lookup
@@ -1271,8 +1284,9 @@ $tls_out_tlsa_usage (detailed above).
 
 
 
-SMTPUTF8
+INTERNATIONAL
 ------------------------------------------------------------
+SMTPUTF8
 Internationalised mail name handling.
 RFCs 6530, 6533, 5890
 
@@ -1337,6 +1351,36 @@ Known issues:
  - DSN unitext handling is not present
  - no provision for converting logging from or to UTF-8
 
+----
+IMAP folder names
+
+New expansion operator:
+
+${imapfolder {<string>} {<sep>} {<specials>}}
+
+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> and are not in the <specials> string are BASE64 encoded.
+
+The third argument can be omitted, defaulting to an empty string.
+The second argument can be omitted, defaulting to "/".
+
+This is the encoding used by Courier for Maildir names on disk, and followed
+by many other IMAP servers.
+
+   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".
+
+Note that the source charset setting is vital, and also that characters
+must be representable in UTF-16.
+
+
+
+
 --------------------------------------------------------------
 End of file
 --------------------------------------------------------------