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:
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"
.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 &<<CHAPACL>>& for further details.
+received.
+If no value is set then the ETRN facility is not advertised.
+See chapter &<<CHAPACL>>& for further details.
.option acl_smtp_expn main string&!! unset
.cindex "EXPN" "ACL for"
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.
.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
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
&*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
.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.
.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
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
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,
-.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
-.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