Sendmail Tuning For Batch Mail Jobs
- by Kyle Brandt
I have a webservers that send out emails to a sendmail relay server as a batch job. The emails need to be accepted by the relay sendmail server as fast as possible, however, they do not need to go out (be relayed) very quickly.
I am seeing a couple timeouts once and a while from the webserver trying to connect to the relay server. The load currently is about 30 emails a second for a couple minutes.
There are quite a few tuning options for sendmail in the sendmail tuning guide.
What I am focusing on now is the Delivery Mode:
Delivery Mode
There are a number of delivery modes
that sendmail can operate in, set by
the DeliveryMode ( d) configuration
option. These modes specify how
quickly mail will be delivered. Legal
modes are:
i deliver interactively
(synchronously) b deliver in
background (asynchronously) q queue
only (don't deliver) d defer delivery
attempts (don't deliver) There are
tradeoffs. Mode i gives the sender the
quickest feedback, but may slow down
some mailers and is hardly ever
necessary. Mode b delivers promptly
but can cause large numbers of
processes if you have a mailer that
takes a long time to deliver a
message. Mode q minimizes the load on
your machine, but means that delivery
may be delayed for up to the queue
interval. Mode d is identical to mode
q except that it also prevents lookups
in maps including the -D flag from
working during the initial queue
phase; it is intended for ``dial on
demand'' sites where DNS lookups might
cost real money. Some simple error
messages (e.g., host unknown during
the SMTP protocol) will be delayed
using this mode. Mode b is the usual
default. If you run in mode q (queue
only), d (defer), or b (deliver in
background) sendmail will not expand
aliases and follow .forward files upon
initial receipt of the mail. This
speeds up the response to RCPT
commands. Mode i should not be used by
the SMTP server.
I currently have the CentOS default modes:
Sendmail.cf:
DeliveryMode=background
Submit.cf:
DeliveryMode=i
Is sendmail.cf/mc for outgoing email from relay (to the intertubes) and sumbit.cf/mc for incoming eamil (from my webservers).
Would it make sense to change the outgoing delivery mode to queue? If I did, what would the outbound email flow behave like?
If this is the right thing to do, can anyone show me example mc configurations for this change? If it isn't, what recommendations are there for these constraints?