X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/8618b5c7a533f167bff9c25c9653d8d3ab94b68f..7482553d06b156505e38b4cb1b72324bcfb62b37:/doc/doc-docbook/spec.xfpt diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index 9a52502d2..cc5198ac5 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -1764,6 +1764,12 @@ distributors have chosen to bundle different libraries with their packaged versions. However, the more recent releases seem to have standardized on the Berkeley DB library. +.new +Ownership of the Berkeley DB library has moved to a major corporation; +development seems to have stalled and documentation is not freely available. +This is probably not tenable for the long term use by Exim. +.wen + Different DBM libraries have different conventions for naming the files they use. When a program opens a file called &_dbmfile_&, there are several possibilities: @@ -1852,6 +1858,17 @@ DBMLIB=/usr/local/lib/db-4.1/libdb.a There is further detailed discussion about the various DBM libraries in the file &_doc/dbm.discuss.txt_& in the Exim distribution. +.new +When moving from one DBM library to another, +for the hints databases it suffices to just remove all the files in the +directory named &"db/"& under the spool directory. +This is because hints are only for optimisation and will be rebuilt +during normal operations. +Non-hints DBM databases (used by &"dbm"& lookups in the configuration) +will need individual rebuilds for the new DBM library. +This is not done automatically +.wen + .section "Pre-building configuration" "SECID25" @@ -15187,8 +15204,11 @@ See section &<>& for further details. .option acl_smtp_etrn main string&!! unset .cindex "ETRN" "ACL for" +.cindex "ETRN" advertisement This option defines the ACL that is run when an SMTP ETRN command is -received. See chapter &<>& for further details. +received. +If no value is set then the ETRN facility is not advertised. +See chapter &<>& for further details. .option acl_smtp_expn main string&!! unset .cindex "EXPN" "ACL for" @@ -22203,6 +22223,12 @@ subject to address rewriting. Otherwise, they are treated like new addresses and are rewritten according to the global rewriting rules. +.option sieve_inbox redirect string&!! &"inbox"& +.new +The value of this option is passed to a Sieve filter to specify the +name of the mailbox used for "keep" operations (explicit or implicit). +.wen + .option sieve_subaddress redirect string&!! unset The value of this option is passed to a Sieve filter to specify the :subaddress part of an address. @@ -23239,7 +23265,11 @@ fileinto "folder23"; .endd In this situation, the expansion of &%file%& or &%directory%& in the transport must transform the relative path into an appropriate absolute filename. In the -case of Sieve filters, the name &'inbox'& must be handled. It is the name that +case of Sieve filters, the name &'inbox'& must be handled. It is the +.new +default +.wen +name that is used as a result of a &"keep"& action in the filter. This example shows one way of handling this requirement: .code @@ -23255,6 +23285,12 @@ With this setting of &%file%&, &'inbox'& refers to the standard mailbox location, absolute paths are used without change, and other folders are in the &_mail_& directory within the home directory. +.new +An alternative for the &"keep"& aspect is to use the &%sieve_inbox%& option +on the redirect router that calls the Sieve filter, +to explicitly set the filename used. +.wen + &*Note 1*&: While processing an Exim filter, a relative path such as &_folder23_& is turned into an absolute path if a home directory is known to the router. In particular, this is the case if &%check_local_user%& is set. If @@ -23265,6 +23301,10 @@ path to the transport. &*Note 2*&: An absolute path in &$address_file$& is not treated specially; the &%file%& or &%directory%& option is still used if it is set. +.new +&*Note 3*&: Permitting a user to enable writes to an absolute path +may be a security issue. +.wen @@ -37300,12 +37340,8 @@ See the next section for more detail about error handling. .cindex "SMTP" "batching over TCP/IP" When a message is successfully delivered over a TCP/IP SMTP connection, Exim looks in the hints database for the transport to see if there are any queued -messages waiting for the host to which it is connected. If it finds one, it -creates a new Exim process using the &%-MC%& option (which can only be used by -a process running as root or the Exim user) and passes the TCP/IP socket to it -so that it can deliver another message using the same socket. The new process -does only those deliveries that are routed to the connected host, and may in -turn pass the socket on to a third process, and so on. +messages waiting for the host to which it is connected. +If it finds one, it arranges to attempt that message on the same connection. The &%connection_max_messages%& option of the &(smtp)& transport can be used to limit the number of messages sent down a single TCP/IP connection. @@ -37643,6 +37679,14 @@ RCPT failures. .subsection "The ETRN command" SECTETRN .cindex "ETRN" "processing" .cindex "ESMTP extensions" ETRN +Most modern installations never need to use this. +It is used for managing messages queued for an intermittently-connecting +destination (eg. one using a dialup connection). + +.oindex "&%acl_smtp_etrn%&" +The command is only available if permitted by an ACL +specfied by the main-section &%acl_smtp_etrn%& option. + RFC 1985 describes an ESMTP command called ETRN that is designed to overcome the security problems of the TURN command (which has fallen into disuse). When Exim receives an ETRN command on a TCP/IP connection, it runs @@ -40255,8 +40299,6 @@ for remote hosts The &'misc'& database is used for .ilist -Serializing ETRN runs (when &%smtp_etrn_serialize%& is set) -.next Serializing delivery to a specific host (when &%serialize_hosts%& is set in an &(smtp)& transport) .next @@ -40264,11 +40306,13 @@ Limiting the concurrency of specific transports (when &%max_parallel%& is set in a transport) .next Recording EHLO-time facilities advertised by hosts +.next +Serializing ETRN runs (when &%smtp_etrn_serialize%& is set) .endlist -.section "exim_dumpdb" "SECTdumpdb" +.subsection "exim_dumpdb" "SECTdumpdb" .cindex "&'exim_dumpdb'&" The entire contents of a database are written to the standard output by the &'exim_dumpdb'& program, @@ -40310,7 +40354,7 @@ cross-references. -.section "exim_tidydb" "SECTtidydb" +.subsection "exim_tidydb" "SECTtidydb" .cindex "&'exim_tidydb'&" The &'exim_tidydb'& utility program is used to tidy up the contents of a hints database. If run with no options, it removes all records that are more than 30 @@ -40359,7 +40403,7 @@ databases is likely to keep on increasing. -.section "exim_fixdb" "SECTfixdb" +.subsection "exim_fixdb" "SECTfixdb" .cindex "&'exim_fixdb'&" The &'exim_fixdb'& program is a utility for interactively modifying databases. Its main use is for testing Exim, but it might also be occasionally useful for