SUMMARY: Sendmail Multiple recipients queue behaviour host lookups

From: Greg Kaloutsis <>
Date: Wed Sep 01 2004 - 18:25:54 EDT
Thanks for the help folks...

<> Assume you have an email with say 20 recipients
<> Sendmail goes to send the message. However about 5 recipients down the 
<> list it cannot connect to the destination MX host.
<> A few questions:
<>    1. Does it keep trying the others or just put the message in the 
<>       mail queue?

When an address fails "softly" (eg., a dns problem or network/host
down or 4nn error on the remote host), sendmail moves on to the next
address in the list of recipients.

<>    2. In the queue how does it know to whom in the list of recipients 
<>       it has sent the message?

sendmail maintains each message in the outgoing queue as three
seperate files:

  df<message-Id>	The message body
  qf<message-Id>	The queue control file
  xf<message-Id>	The transcript file
  tf<message-Id>	A temp file

The df file is the actual outgoing message body.  There are no headers
at all in this file, just the body text.

The qf file is the meat of the state information; it has all of the
message headers, plus the list of recipients not delivered to. Those
are listed as individual lines starting with "R"

xf and tf files are transient, existing only while sendmail is
actively processing that message.

Much more details can be found in the sendmail operations manual
appendix B:

When you run "mailq" (or "sendmail -bp") sendmail reads the qf files
and tells you who and why.

<>    3. Processing the message in the queue it seems to do host lookups 
<>       on all the recipients.
<>       Surely it knows whom it has sent it to?
<> The reason I ask is that I have noticed when I try to manually do some 
<> queue runs in debug mode for
<> domain that was down.
<>    /usr/lib/sendmail -v -d60.1 -qRdomainthatwasdown
<> Sendmail spends a very long time on some of the lookups
<>    map_lookup(host, " in the list of recipients"
<> What I'd really like to be able to do is tune this so that its not doing 
<> lookups for recipients it has already sent the message to.

When you run the queue, the useful bits of the qf file are copied to
an xf file.  The destination addresses in the qf are then tried
sequentially.  If any addresses remain unsuccessful, the qf file is
rewritten with just those "R" lines remaining.

The host lookups were a result of all the failed addresses.
Sendmail does these lookups both for the sender and the recipient.
It turns out I had issues with DNS that were causing delays for the lookups.
Look at the -d8.x series of debug switches....

Another good suggestion was to look at breaking up the queues based on domains.
This was faulty domains are grouped.

Thanks again..

                        Greg Kaloutsis
                Systems Administrator - GovNet
                    CITEC Support Services
   Email:    or
   Phone: +61 7 32222644    Fax: +61 7 32278245
   Address: GPO Box 279, 317 Edward Stree, Brisbane  Qld  4000
     Whole of Government email address! Have you got one yet?

CITEC is a national information and communications technology (ICT)
service provider with approximately 630 employees located across

CITEC manages two high security data centres located in Brisbane
and Sydney and provides information brokerage; business process
outsourcing and application management; infrastructure management
and professional services.

             Your business solutions partner.

sunmanagers mailing list
Received on Wed Sep 1 18:25:48 2004

This archive was generated by hypermail 2.1.8 : Thu Mar 03 2016 - 06:43:38 EST