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.
(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