Added index entry for acl_smtp_notquit, updating change NM/08, Fixes: #800
[exim.git] / doc / doc-docbook / spec.xfpt
index 6162739d87d721938814ae1ffc5d37bf6a4cfd37..ec631523b787e2afea224d37fab744c280c3151a 100644 (file)
@@ -1,4 +1,4 @@
-. $Cambridge: exim/doc/doc-docbook/spec.xfpt,v 1.39 2008/03/26 15:37:37 fanf2 Exp $
+. $Cambridge: exim/doc/doc-docbook/spec.xfpt,v 1.49 2009/01/02 16:42:31 nm4 Exp $
 .
 . /////////////////////////////////////////////////////////////////////////////
 . This is the primary source of the Exim Manual. It is an xfpt document that is
@@ -4718,7 +4718,7 @@ up in a MySQL database. It helps to keep the file less cluttered if long
 strings such as SQL statements are defined separately as macros, for example:
 .code
 ALIAS_QUERY = select mailbox from user where \
-              login=${quote_mysql:$local_part};
+              login='${quote_mysql:$local_part}';
 .endd
 This can then be used in a &(redirect)& router setting like this:
 .code
@@ -7172,13 +7172,13 @@ mysql_servers = slave1/db/name/pw:\
 .endd
 In an updating lookup, you could then write:
 .code
-${lookup mysql{servers=master; UPDATE ...}
+${lookup mysql{servers=master; UPDATE ...} }
 .endd
 That query would then be sent only to the master server. If, on the other hand,
 the master is not to be used for reading, and so is not present in the global
 option, you can still update it by a query of this form:
 .code
-${lookup pgsql{servers=master/db/name/pw; UPDATE ...}
+${lookup pgsql{servers=master/db/name/pw; UPDATE ...} }
 .endd
 
 
@@ -18958,11 +18958,9 @@ filter itself, and the original process that reads the result and delivers it
 are all run in parallel, like a shell pipeline.
 
 The filter can perform any transformations it likes, but of course should take
-care not to break RFC 2822 syntax. A demonstration Perl script is provided in
-&_util/transport-filter.pl_&; this makes a few arbitrary modifications just to
-show the possibilities. Exim does not check the result, except to test for a
-final newline when SMTP is in use. All messages transmitted over SMTP must end
-with a newline, so Exim supplies one if it is missing.
+care not to break RFC 2822 syntax. Exim does not check the result, except to
+test for a final newline when SMTP is in use. All messages transmitted over
+SMTP must end with a newline, so Exim supplies one if it is missing.
 
 .cindex "content scanning" "per user"
 A transport filter can be used to provide content-scanning on a per-user basis
@@ -24057,11 +24055,11 @@ sections &<<SECTreqciphssl>>& and &<<SECTreqciphgnu>>&.
 
 
 .section "GnuTLS parameter computation" "SECID181"
-GnuTLS uses RSA and D-H parameters that may take a substantial amount of time
+GnuTLS uses D-H parameters that may take a substantial amount of time
 to compute. It is unreasonable to re-compute them for every TLS session.
 Therefore, Exim keeps this data in a file in its spool directory, called
 &_gnutls-params_&. The file is owned by the Exim user and is readable only by
-its owner. Every Exim process that start up GnuTLS reads the RSA and D-H
+its owner. Every Exim process that start up GnuTLS reads the D-H
 parameters from this file. If the file does not exist, the first Exim process
 that needs it computes the data and writes it to a temporary file which is
 renamed once it is complete. It does not matter if several Exim processes do
@@ -24769,7 +24767,8 @@ connection is closed. In these special cases, the QUIT ACL does not run.
 
 
 .section "The not-QUIT ACL" "SECTNOTQUITACL"
-The not-QUIT ACL, specified by &%smtp_notquit_acl%&, is run in most cases when
+.vindex &$acl_smtp_notquit$&
+The not-QUIT ACL, specified by &%acl_smtp_notquit%&, is run in most cases when
 an SMTP session ends without sending QUIT. However, when Exim itself is is bad
 trouble, such as being unable to write to its log files, this ACL is not run,
 because it might try to do things (such as write to log files) that make the
@@ -25081,7 +25080,7 @@ the sending entity receives a &"success"& response. However, &%discard%& causes
 recipients to be discarded. If it is used in an ACL for RCPT, just the one
 recipient is discarded; if used for MAIL, DATA or in the non-SMTP ACL, all the
 message's recipients are discarded. Recipients that are discarded before DATA
-do not appear in the log line when the &%log_recipients%& log selector is set.
+do not appear in the log line when the &%received_recipients%& log selector is set.
 
 If the &%log_message%& modifier is set when &%discard%& operates,
 its contents are added to the line that is automatically written to the log.
@@ -25471,7 +25470,8 @@ ACL fragment writes no logging information when access is denied:
 &`     log_reject_target =`&
 .endd
 This modifier can be used in SMTP and non-SMTP ACLs. It applies to both
-permanent and temporary rejections.
+permanent and temporary rejections. Its effect lasts for the rest of the
+current ACL.
 
 
 .vitem &*logwrite*&&~=&~<&'text'&>
@@ -27554,19 +27554,8 @@ the third string (in this case &"1"&), whether or not the cryptographic and
 timeout checks succeed. The &$prvscheck_result$& variable contains the result
 of the checks (empty for failure, &"1"& for success).
 
-There are two more issues you must consider when implementing prvs-signing.
-Firstly, you need to ensure that prvs-signed addresses are not blocked by your
-ACLs. A prvs-signed address contains a slash character, but the default Exim
-configuration contains this statement in the RCPT ACL:
-.code
-deny    message       = Restricted characters in address
-        domains       = +local_domains
-        local_parts   = ^[.] : ^.*[@%!/|]
-.endd
-This is a conservative rule that blocks local parts that contain slashes. You
-should remove the slash in the last line.
-
-Secondly, you have to ensure that the routers accept prvs-signed addresses and
+There is one more issue you must consider when implementing prvs-signing:
+you have to ensure that the routers accept prvs-signed addresses and
 deliver them correctly. The easiest way to handle this is to use a &(redirect)&
 router to remove the signature with a configuration along these lines:
 .code