X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/4af0d74a886c7fbd4e3eec1743f4b1d2d8a4d457..3045f0503a6aacfa5feea1c9b67e7950a8c57ee7:/doc/doc-txt/experimental-spec.txt?ds=inline diff --git a/doc/doc-txt/experimental-spec.txt b/doc/doc-txt/experimental-spec.txt index d446f6b67..18a5fd917 100644 --- a/doc/doc-txt/experimental-spec.txt +++ b/doc/doc-txt/experimental-spec.txt @@ -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 -------------------------------------------------------------- @@ -469,6 +480,7 @@ in your Local/Makefile. DCC Support -------------------------------------------------------------- +Distributed Checksum Clearinghouse; http://www.rhyolite.com/dcc/ *) Building exim @@ -786,6 +798,8 @@ expansion is done. The current list of events is: msg:complete after main per message msg:delivery after transport per recipient + msg:rcpt:host:defer after transport per recipient per host + msg:rcpt:defer after transport per recipient msg:host:defer after transport per attempt msg:fail:delivery after main per recipient msg:fail:internal after main per recipient @@ -795,18 +809,24 @@ 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. + +New event types may be added in the future. + There is an auxilary variable, $event_data, for which the content is event_dependent: msg:delivery smtp confirmation mssage + msg:rcpt:host:defer error string + msg:rcpt:defer error string msg:host:defer error string tls:cert verification chain depth smtp:connect smtp banner -The msg:host:defer event populates one extra variable, $event_defer_errno. +The :defer events populate one extra variable, $event_defer_errno. The following variables are likely to be useful depending on the event type: @@ -834,7 +854,16 @@ event_action = ${if eq {msg:delivery}{$event_name} \ The string is expanded when each of the supported events occur and any side-effects of the expansion will happen. -Note that for complex operations an ACL expansion can be used. + +Note that for complex operations an ACL expansion can be used, +however due to the multiple contexts the Exim operates in +a) variables set in events raised from transports will not + be visible outside that transport call. +b) acl_m variables in a server context are lost on a new connection, + and after helo/ehlo/mail/starttls/rset commands +Using an ACL expansion with the logwrite modifier can be a +useful way of writing to the main log. + The expansion of the event_action option should normally @@ -855,7 +884,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 @@ -1108,10 +1137,15 @@ These options are currently defined: - "pass" sets the authentication password. Default is empty. - "port" sets the tcp port number for the proxy. Default is 1080. - "tmo" sets a connection timeout in seconds for this proxy. Default is 5. +- "pri" specifies a priority for the server within the list, higher + values being tried first. The default priority is 1. +- "weight" specifies a selection bias. Within a priority set servers + are queried in a random fashion, weighted by this value. The default + value for selection bias is 1. -Proxies from the list are tried in order until -one responds. The timeout for the overall connection -applies to the set of proxied attempts. +Proxies from the list are tried according to their priority +and weight settings until one responds. The timeout for the +overall connection applies to the set of proxied attempts. If events are used, the remote IP/port during a tcp:connect event will be that of the proxy. @@ -1271,8 +1305,9 @@ $tls_out_tlsa_usage (detailed above). -SMTPUTF8 +INTERNATIONAL ------------------------------------------------------------ +SMTPUTF8 Internationalised mail name handling. RFCs 6530, 6533, 5890 @@ -1337,6 +1372,79 @@ 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 {} {} {}} + +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 (which has to be a single character) +are replaced with periods ("."), and all periods and slashes that aren't + and are not in the 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. + + + +DSN extra information +--------------------- +If compiled with EXPERIMENTAL_DSN_INFO extra information will be added +to DSN fail messages ("bounces"), when available. The intent is to aid +tracing of specific failing messages, when presented with a "bounce" +complaint and needing to search logs. + + +The remote MTA IP address, with port number if nonstandard. +Example: + Remote-MTA: X-ip; [127.0.0.1]:587 +Rationale: + Several addresses may correspond to the (already available) + dns name for the remote MTA. + +The remote MTA connect-time greeting. +Example: + X-Remote-MTA-smtp-greeting: X-str; 220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 +Rationale: + This string sometimes presents the remote MTA's idea of its + own name, and sometimes identifies the MTA software. + +The remote MTA response to HELO or EHLO. +Example: + X-Remote-MTA-helo-response: X-str; 250-the.local.host.name Hello localhost [127.0.0.1] +Limitations: + Only the first line of a multiline response is recorded. +Rationale: + This string sometimes presents the remote MTA's view of + the peer IP connecting to it. + +The reporting MTA detailed diagnostic. +Example: + X-Exim-Diagnostic: X-str; SMTP error from remote mail server after RCPT TO:: 550 hard error +Rationale: + This string somtimes give extra information over the + existing (already available) Diagnostic-Code field. + + +Note that non-RFC-documented field names and data types are used. + + + + -------------------------------------------------------------- End of file --------------------------------------------------------------