SOCKS: move from Experimental to mainline
[exim.git] / doc / doc-txt / experimental-spec.txt
index 317f40101c74f46535d47305290013cde7fb1e25..f0f1035ea003850cc93df0f21782b3e698570789 100644 (file)
@@ -480,6 +480,7 @@ in your Local/Makefile.
 
 DCC Support
 --------------------------------------------------------------
+Distributed Checksum Clearinghouse; http://www.rhyolite.com/dcc/
 
 *) Building exim
 
@@ -797,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
@@ -810,16 +813,20 @@ 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:
 
@@ -847,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
@@ -864,6 +880,9 @@ following will be forced:
 
 No other use is made of the result string.
 
+If transport proxying is used, the remote IP/port during a
+tcp:connect event will be that of the proxy.
+
 
 Known issues:
 - the tls:cert event is only called for the cert chain elements
@@ -1099,39 +1118,6 @@ QUIT
 
 
 
-SOCKS
-------------------------------------------------------------
-Support for proxying outbound SMTP via a Socks 5 proxy
-(RFC 1928) is included if Exim is compiled with
-EXPERIMENTAL_SOCKS defined.
-
-If an smtp transport has a nonempty socks_proxy option
-defined, this is active.  The option is expanded and
-should be a list (colon-separated by default) of
-proxy specifiers.  Each proxy specifier is a list
-(space-separated by default) where the initial element
-is an IP address and any subsequent elements are options.
-
-Options are a string <name>=<value>.
-These options are currently defined:
-- "auth", with possible values "none" and "name".
-  Using "name" selects username/password authentication
-  per RFC 1929. Default is "none".
-- "name" sets the authentication username. Default is empty.
-- "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.
-
-Proxies from the list are tried in order 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.
-
-
-
-
 DANE
 ------------------------------------------------------------
 DNS-based Authentication of Named Entities, as applied
@@ -1380,6 +1366,49 @@ 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:<d3@myhost.test.ex>: 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