Header-wrap expansion. Bug 2843
[exim.git] / doc / doc-docbook / spec.xfpt
index cc59230698cd8af1bc59f403923edeaf0fca40e9..8e2e1d142317387906dd0a0aa099ad8a18cb6f21 100644 (file)
@@ -1,3 +1,4 @@
+
 . /////////////////////////////////////////////////////////////////////////////
 . This is the primary source of the Exim Manual. It is an xfpt document that is
 . converted into DocBook XML for subsequent conversion into printable and online
@@ -948,6 +949,7 @@ User filters are run as part of the routing process, described below.
 .cindex "base36"
 .cindex "Darwin"
 .cindex "Cygwin"
+.cindex "exim_msgdate"
 Every message handled by Exim is given a &'message id'& which is sixteen
 characters long. It is divided into three parts, separated by hyphens, for
 example &`16VDhn-0001bo-D3`&. Each part is a sequence of letters and digits,
@@ -994,6 +996,10 @@ received by the same process, or by another process with the same (re-used)
 pid, it is guaranteed that the time will be different. In most cases, the clock
 will already have ticked while the message was being received.
 
+The exim_msgdate utility (see section &<<SECTexim_msgdate>>&) can be
+used to display the date, and optionally the process id, of an Exim
+Message ID.
+
 
 .section "Receiving mail" "SECID13"
 .cindex "receiving mail"
@@ -2810,6 +2816,14 @@ of Exim is installed. It is not necessary to do this when other files that are
 referenced from the configuration (for example, alias files) are changed,
 because these are reread each time they are used.
 
+.new
+Either a SIGTERM or a SIGINT signal should be used to cause the daemon
+to cleanly shut down.
+Subprocesses handling recceiving or delivering messages,
+or for scanning the queue,
+will not be affected by the termination of the daemon process.
+.wen
+
 .cmdopt -bdf
 This option has the same effect as &%-bd%& except that it never disconnects
 from the controlling terminal, even when no debugging is specified.
@@ -4607,6 +4621,15 @@ combined daemon at system boot time is to use a command such as
 Such a daemon listens for incoming SMTP calls, and also starts a queue runner
 process every 30 minutes.
 
+.new
+.cindex "named queues" "queue runners"
+It is possible to set up runners for multiple named queues within one daemon,
+For example:
+.code
+exim -qGhipri/2m -q10m -qqGmailinglist/1h
+.endd
+.wen
+
 When a daemon is started by &%-q%& with a time value, but without &%-bd%&, no
 pid file is written unless one is explicitly requested by the &%-oP%& option.
 
@@ -11037,6 +11060,24 @@ abbreviation &%h%& can be used when &%hash%& is used as an operator.
 
 
 
+.new
+.vitem &*${headerwrap_*&<&'cols'&>&*_*&<&'limit'&>&*:*&<&'string'&>&*}*&
+.cindex header "wrapping operator"
+.cindex expansion "header wrapping"
+This operator line-wraps its argument in a way useful for headers.
+The &'cols'& value gives the column number to wrap after,
+the &'limit'& gives a limit number of result characters to truncate at.
+Either just the &'limit'& and the preceding underbar, or both, can be omitted;
+the defaults are 80 and 998.
+Wrapping will be inserted at a space if possible before the
+column number is reached.
+Whitespace at a chosen wrap point is removed.
+A line-wrap consists of a newline followed by a tab,
+and the tab is counted as 8 columns.
+.wen
+
+
+
 .vitem &*${hex2b64:*&<&'hexstring'&>&*}*&
 .cindex "base64 encoding" "conversion from hex"
 .cindex "expansion" "hex to base64"
@@ -28285,7 +28326,7 @@ Dovecot 2 POP/IMAP server, which can support a number of authentication methods.
 Note that Dovecot must be configured to use auth-client not auth-userdb.
 If you are using Dovecot to authenticate POP/IMAP clients, it might be helpful
 to use the same mechanisms for SMTP authentication. This is a server
-authenticator only. There is only one option:
+authenticator only. There is only one non-generic option:
 
 .option server_socket dovecot string unset
 
@@ -28297,6 +28338,7 @@ authenticators for different mechanisms. For example:
 dovecot_plain:
   driver = dovecot
   public_name = PLAIN
+  server_advertise_condition = ${if def:tls_in_cipher}
   server_socket = /var/run/dovecot/auth-client
   server_set_id = $auth1
 
@@ -28306,6 +28348,13 @@ dovecot_ntlm:
   server_socket = /var/run/dovecot/auth-client
   server_set_id = $auth1
 .endd
+
+.new
+&*Note*&: plaintext authentication methods such as PLAIN and LOGIN
+should not be advertised on cleartext SMTP connections.
+See the discussion in section &<<SECTplain_TLS>>&.
+.wen
+
 If the SMTP connection is encrypted, or if &$sender_host_address$& is equal to
 &$received_ip_address$& (that is, the connection is local), the &"secured"&
 option is passed in the Dovecot authentication command. If, for a TLS
@@ -39450,6 +39499,7 @@ the next chapter. The utilities described here are:
 .irow &<<SECTtidydb>>&        &'exim_tidydb'&   "clean up a hints database"
 .irow &<<SECTfixdb>>&         &'exim_fixdb'&    "patch a hints database"
 .irow &<<SECTmailboxmaint>>&  &'exim_lock'&     "lock a mailbox file"
+.irow &<<SECTexim_msgdate>>&  &'exim_msgdate'&  "Message Ids for humans (exim_msgdate)"
 .endtable
 
 Another utility that might be of use to sites with many MTAs is Tom Kistner's
@@ -40173,9 +40223,16 @@ exim_lock -q /var/spool/mail/spqr \
 .endd
 Note that if a command is supplied, it must be entirely contained within the
 second argument &-- hence the quotes.
-.ecindex IIDutils
 
 
+.section "Message Ids for humans (exim_msgdate)" "SECTexim_msgdate"
+.cindex "exim_msgdate"
+The &'exim_msgdate'& utility is written by Andrew Aitchison and included in the Exim distribution.
+This Perl script converts an Exim Mesage ID back into a human readable form.
+For details of &'exim_msgdate'&'s options, run &'exim_msgdate'& with the &%--help%& option.
+
+Section &<<SECTmessiden>>& (Message identification) describes Exim Mesage IDs.
+.ecindex IIDutils
 . ////////////////////////////////////////////////////////////////////////////
 . ////////////////////////////////////////////////////////////////////////////
 
@@ -42173,8 +42230,9 @@ Example usage:
   # one, plus the max_rcpt and return_path options
   remote_forwarded_smtp:
     driver =              smtp
-    # modify the envelope from, for mails that we forward
+    # single-recipient so that $original_domain is valid
     max_rcpt =            1
+    # modify the envelope from, for mails that we forward
     return_path =         ${srs_encode {SRS_SECRET} {$return_path} {$original_domain}}
 .endd