When the message is about to be written out, the command specified by
&%transport_filter%& is started up in a separate, parallel process, and
the entire message, including the header lines, is passed to it on its standard
-input (this in fact is done from a third process, to avoid deadlock). The
-command must be specified as an absolute path.
+input (this in fact is done from a third process, to avoid deadlock).
+The command must be specified as an absolute path.
+
+The process run by the command must use its standard input as the message
+data to be transformed, and write the results on its standard output.
The lines of the message that are written to the transport filter are
terminated by newline (&"\n"&). The message is passed to the filter before any
No part of the resulting command may be tainted.
-.option environment pipe string&!! unset
+.option environment pipe "string list&!!" unset
.cindex "&(pipe)& transport" "environment for command"
.cindex "environment" "&(pipe)& transport"
This option is used to add additional variables to the environment in which the
Exim can pull out a server name, if there is one, from the response to the
client's SMTP EHLO command.
-The default value of this option:
+For normal STARTTLS use, the default value of this option:
.code
${if and { {match {$host} {.outlook.com\$}} \
{match {$item} {\N^250-([\w.]+)\s\N}} \
} {$1}}
.endd
suffices for one known case.
+
During the expansion of this option the &$item$& variable will have the
server's EHLO response.
+
+.new
+For TLS-on-connect connections we do not have an EHLO
+response to use. Because of this the default value of this option is
+set to a static string for those cases, meaning that resumption will
+always be attempted if permitted by the &%tls_resumption_hosts%& option.
+.wen
+
The result of the option expansion is included in the key used to store and
retrieve the TLS session, for session resumption.
.cindex "line length" limit
This option sets the maximum line length, in bytes, that the transport
will send. Any messages with lines exceeding the given value
+(before a transport filter, if any)
will fail and a failure-DSN ("bounce") message will if possible be returned
to the sender.
The default value is that defined by the SMTP standards.
(the -D file). The file is open for reading and writing, but updating it is not
recommended. &*Warning*&: You must &'not'& close this file descriptor.
-The descriptor is positioned at character 19 of the file, which is the first
-character of the body itself, because the first 19 characters are the message
-id followed by &`-D`& and a newline. If you rewind the file, you should use the
+The descriptor is positioned at character 26 of the file, which is the first
+character of the body itself, because the first 26 characters (19 characters
+before Exim 4.97) are the message id followed by &`-D`& and a newline.
+If you rewind the file, you should use the
macro SPOOL_DATA_START_OFFSET to reset to the start of the data, just in
case this changes in some future version.
.next
.irow &`tls_peerdn`& "TLS peer DN on <= and => lines"
.irow &`tls_resumption`& "append * to cipher field"
.irow &`tls_sni`& "TLS SNI on <= lines"
-.irow &`unknown_in_list`& "DNS lookup failed in list match"
+.irow &`unknown_in_list`& "lookup failed in list match"
.irow &`all`& "&*all of the above*&"
.endtable
See also the &%slow_lookup_log%& main configuration option,
.next
.cindex "log" "DNS failure in list"
&%unknown_in_list%&: This setting causes a log entry to be written when the
-result of a list match is failure because a DNS lookup failed.
+result of a list match is failure because a DNS lookup failed, or because
+a bad IP address was in the list.
.endlist
.option dkim_sign_headers smtp string&!! "see below"
If set, this option must expand to a colon-separated
list of header names.
-Headers with these names, or the absence or such a header, will be included
+Headers with these names, or the absence of such a header, will be included
in the message signature.
When unspecified, the header names listed in RFC4871 will be used,
whether or not each header is present in the message.