Altering read timeouts
It is possible to time out when reading the standard input
or when reading from a remote SMTP server.
These timeouts are set using the Timeout (r)
option in the configuration file.
The option names are all of the form Timeout.suboption.
The recognized suboptions, their default values, and the
minimum values allowed by RFC 1123 section 5.3.2 are:
connect-
The time to wait for an SMTP connection to open (the
connect(SSC)
system call)
[0, unspecified].
If zero, uses the kernel default.
In no case can this option extend the timeout
longer than the kernel provides, but it can shorten it.
This is to get around kernels that provide an absurdly long connection timeout
(90 minutes in one case).
iconnect-
The same as connect,
except it applies only to the initial attempt to connect to a host
for a given message [0, unspecified].
The concept is that this should be very short (a few seconds);
hosts that are well connected and responsive will thus be serviced immediately.
Hosts that are slow will not hold up other deliveries in the initial
delivery attempt.
initial-
The wait for the initial 220 greeting message
[5m, 5m].
helo-
The wait for a reply from a HELO or EHLO command
[5m, unspecified].
This may require a host name lookup, so
five minutes is probably a reasonable minimum.
mail+-
The wait for a reply from a MAIL command
[10m, 5m].
rcpt+-
The wait for a reply from an RCPT command
[1h, 5m].
This should be long
because it could be pointing at a list
that takes a long time to expand.
datainit+-
The wait for a reply from a DATA command
[5m, 2m].
datablock+-
The wait for reading a data block
(that is, the body of the message).
[1h, 3m].
This should be long because it also applies to programs
piping input to
sendmail
which have no guarantee of promptness.
datafinal+-
The wait for a reply from the dot terminating a message.
[1h, 10m].
If this is shorter than the time actually needed
for the receiver to deliver the message,
duplicates will be generated.
This is discussed in RFC 1047.
rset-
The wait for a reply from a RSET command
[5m, unspecified].
quit-
The wait for a reply from a QUIT command
[2m, unspecified].
misc-
The wait for a reply from miscellaneous (but short) commands
such as NOOP (no-operation) and VERB (go into verbose mode).
[2m, unspecified].
command+-
In server SMTP,
the time to wait for another command.
[1h, 5m].
ident-
The timeout waiting for a reply to an IDENT query
[30s, unspecified].
fileopen-
The timeout for opening .forward and :include: files [60s, none].
control-
The timeout for a complete control socket transaction to complete [2m, none].
hoststatus-
How long status information about a host
(such as host down)
will be cached before it is considered stale
[30m, unspecified].
resolver.retrans-
The resolver's
retransmission time interval
(in seconds) [varies].
Sets both
Timeout.resolver.retrans.first and
Timeout.resolver.retrans.normal.
resolver.retrans.first-
The resolver's
retransmission time interval
(in seconds)
for the first attempt to
deliver a message
[varies].
resolver.retrans.normal-
The resolver's
retransmission time interval
(in seconds)
for all resolver lookups
except the first delivery attempt
[varies].
resolver.retry-
The number of times
to retransmit a resolver query.
Sets both
Timeout.resolver.retry.first and
Timeout.resolver.retry.normal [varies].
resolver.retry.first-
The number of times to retransmit a resolver query
for the first attempt to deliver a message [varies].
resolver.retry.normal-
The number of times to retransmit a resolver query
for all resolver lookups except the first delivery attempt
[varies].
For compatibility with old configuration files,
if no ``suboption'' is specified,
all the timeouts marked with + are set to the indicated value.
Many of the RFC 1123 minimum values
may well be too short.
sendmail
was designed to the RFC 822 protocols,
which did not specify read timeouts; hence,
versions of sendmail prior to 8.1
does not guarantee to reply to messages promptly.
In particular, a
RCPT
command specifying a mailing list
will expand and verify the entire list;
a large list on a slow system
may take more than five minutes.
(This verification includes looking up every address
with the name server;
this involves network delays
and can be considerable in some cases.) A one
hour timeout is recommended.
Because this failure is rare,
a long timeout is not onerous
and may ultimately help reduce network load.
For example, the following line
sets the server SMTP command timeout to 25 minutes
and the input data block timeout to three hours:
O Timeout.command=25m
O Timeout.datablock=3h
Or, using the older short name syntax this option could
alternatively be set by the following line:
Orcommand=25m,datablock=3h
Next topic:
Altering message timeouts
Previous topic:
User database semantics
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003