X-Git-Url: https://vcs.fsf.org/?p=exim.git;a=blobdiff_plain;f=doc%2Fdoc-docbook%2Fspec.xfpt;h=bba71b76d14d04f55bbf6adea73386208c3c46de;hp=c4e9ce284d24c0d95ee4b7f11e9902b084d337c0;hb=04403ab0b5778126d98d5c9dc8064405688129e0;hpb=1639c98f27941500daba8e74f5efb331a35f69e2 diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index c4e9ce284..bba71b76d 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -4510,6 +4510,10 @@ stage, the queue is scanned as if the &%queue_smtp_domains%& option matched every domain. Addresses are routed, local deliveries happen, but no remote transports are run. +.new +Performance will be best if the &%queue_run_in_order%& option is false. +.wen + .cindex "hints database" "remembering routing" The hints database that remembers which messages are waiting for specific hosts is updated, as if delivery to those hosts had been deferred. After this is @@ -12850,6 +12854,13 @@ or if not set, the value of &$qualify_domain$&. .cindex queues named The name of the spool queue in use; empty for the default queue. +.vitem &$queue_size$& +.vindex "&$queue_size$&" +.cindex "queue" "size of" +.cindex "spool" "number of messages" +This variable contains the number of messages queued. +It is evaluated on demand, but no more often than once every minute. + .vitem &$r_...$& .vindex &$r_...$& .cindex router variables @@ -17270,6 +17281,13 @@ example: smtp_etrn_command = /etc/etrn_command $domain \ $sender_host_address .endd +.new +If the option is not set, the argument for the ETRN command must +be a &'#'& followed by an address string. +In this case an &'exim -R '& command is used; +if the ETRN ACL has set up a named-queue then &'-MCG '& is appended. +.wen + A new process is created to run the command, but Exim does not wait for it to complete. Consequently, its status cannot be checked. If the command cannot be run, a line is written to the panic log, but the ETRN caller still receives @@ -18650,15 +18668,19 @@ avoided. The &%repeat_use%& option of the &%redirect%& router may be of help. This option specifies a list of text headers, colon-separated (by default, changeable in the usual way &<>&), that is associated with any addresses that are accepted by the router. -Each item is separately expanded, at routing time. However, this -option has no effect when an address is just being verified. The way in which +However, the option has no effect when an address is just being verified. +Each list item is separately expanded, at transport time. +.new +If an item ends in *, it will match any header with the given prefix. +.wen +The way in which the text is used to remove header lines at transport time is described in section &<>&. Header lines are not actually removed until the message is in the process of being transported. This means that references to header lines in string expansions in the transport's configuration still &"see"& the original header lines. -The &%headers_remove%& option is expanded after &%errors_to%& and +The &%headers_remove%& option is handled after &%errors_to%& and &%headers_add%&, but before &%transport%&. If an item expansion is forced to fail, the item has no effect. Other expansion failures are treated as configuration errors. @@ -21837,15 +21859,21 @@ checked, since this option does not automatically suppress them. .option headers_remove transports list&!! unset .cindex "header lines" "removing" .cindex "transport" "header lines; removing" -This option specifies a list of header names, -colon-separated (by default, changeable in the usual way &<>&); -these headers are omitted from the message as it is transported, as described -in section &<>&. Header removal can also be specified by -routers. +This option specifies a list of text headers, +colon-separated (by default, changeable in the usual way &<>&), +to be removed from the message. +However, the option has no effect when an address is just being verified. Each list item is separately expanded. If the result of the expansion is an empty string, or if the expansion is forced to fail, no action is taken. Other expansion failures are treated as errors and cause the delivery to be deferred. +.new +If an item ends in *, it will match any header with the given prefix. +.wen + +Matching headers are omitted from the message as it is transported, as described +in section &<>&. Header removal can also be specified by +routers. Unlike most options, &%headers_remove%& can be specified multiple times for a transport; all listed headers are removed. @@ -27040,7 +27068,7 @@ There are good and bad examples at the end of the next section. .section "The PLAIN authentication mechanism" "SECID172" .cindex "PLAIN authentication mechanism" -.cindex "authentication" "PLAIN mechanism" +.cindex authentication PLAIN .cindex "binary zero" "in &(plaintext)& authenticator" The PLAIN authentication mechanism (RFC 2595) specifies that three strings be sent as one item of data (that is, one combined string containing two NUL @@ -27122,7 +27150,7 @@ writing the test makes the logic clearer. .section "The LOGIN authentication mechanism" "SECID173" .cindex "LOGIN authentication mechanism" -.cindex "authentication" "LOGIN mechanism" +.cindex authentication LOGIN The LOGIN authentication mechanism is not documented in any RFC, but is in use in a number of programs. No data is sent with the AUTH command. Instead, a user name and password are supplied separately, in response to prompts. The @@ -27243,7 +27271,7 @@ prompts. .scindex IIDcramauth1 "&(cram_md5)& authenticator" .scindex IIDcramauth2 "authenticators" "&(cram_md5)&" .cindex "CRAM-MD5 authentication mechanism" -.cindex "authentication" "CRAM-MD5 mechanism" +.cindex authentication CRAM-MD5 The CRAM-MD5 authentication mechanism is described in RFC 2195. The server sends a challenge string to the client, and the response consists of a user name and the CRAM-MD5 digest of the challenge string combined with a secret @@ -27532,10 +27560,7 @@ auth_mechanisms = plain login ntlm .cindex "authentication" "LOGIN" .cindex "authentication" "DIGEST-MD5" .cindex "authentication" "CRAM-MD5" -.cindex "authentication" "SCRAM-SHA-1" -.cindex "authentication" "SCRAM-SHA-1-PLUS" -.cindex "authentication" "SCRAM-SHA-256" -.cindex "authentication" "SCRAM-SHA-256-PLUS" +.cindex "authentication" "SCRAM family" The &(gsasl)& authenticator provides integration for the GNU SASL library and the mechanisms it provides. This is new as of the 4.80 release and there are a few areas where the library does not let Exim smoothly @@ -30140,7 +30165,7 @@ in several different ways. For example: It can be at the end of an &%accept%& statement: .code accept ...some conditions - control = queue_only + control = queue .endd In this case, the control is applied when this statement yields &"accept"&, in other words, when the conditions are all true. @@ -30149,7 +30174,7 @@ other words, when the conditions are all true. It can be in the middle of an &%accept%& statement: .code accept ...some conditions... - control = queue_only + control = queue ...some more conditions... .endd If the first set of conditions are true, the control is applied, even if the @@ -33896,13 +33921,14 @@ in &_Local/Makefile_& (see section &<>& below). .cindex &%dlfunc%& "API description" You must include this line near the start of your code: .code +#define LOCAL_SCAN #include "local_scan.h" .endd This header file defines a number of variables and other values, and the prototype for the function itself. Exim is coded to use unsigned char values almost exclusively, and one of the things this header defines is a shorthand for &`unsigned char`& called &`uschar`&. -It also contains the following macro definitions, to simplify casting character +It also makes available the following macro definitions, to simplify casting character strings and pointers to character strings: .code #define CS (char *) @@ -40156,6 +40182,8 @@ To generate keys under OpenSSL: openssl genrsa -out dkim_rsa.private 2048 openssl rsa -in dkim_rsa.private -out /dev/stdout -pubout -outform PEM .endd +The result file from the first command should be retained, and +this option set to use it. Take the base-64 lines from the output of the second command, concatenated, for the DNS TXT record. See section 3.6 of RFC6376 for the record specification.