Quick Q&A list.

Q. I get complaints about socket.ph and running h2ph.  What do I do?

A. Running h2ph is an important step in a complete Perl installation that
   unfortunately is not done automatically.  It also seems that h2ph has no
   documentation, but it is actually both a script and a manpage in one.
   To view its docs, do

       nroff -man /path/to/h2ph | more

   You will be told to run

      cd /usr/include; h2ph * sys/*

   Do this as a user which can write to your Perl installation.


Q. Do I still need TLB if I'm running something besides Sendmail?

A. That depends.  Some mailers handle mailing to lists much more
   efficiently than Sendmail, but that doesn't necessarily render TLB
   obsolete.  TLB can still let you split your outbound deliveries over
   multiple hosts (just set up N hosts and set 'numbatches' => N in the
   @delivery_matrix).  It also lets you handle remote exploders.


Q. I'm having problems with hosts complaining about a maximum number of
   recipients in a message.  Can TLB help?

A. Yes.  Some hosts don't like more than a certain number of addresses in
   an envelope; you can put addresses on those hosts in a special
   destination, and batch that domain with 'maxaddrs' => 10 (or whatever
   the limit is).


Q. How much load does TLB place on my system?

A. TLB itself doesn't do that much.  It opens a couple of files, reads
   their contents, does some sorting, and talks to mail servers.  If you
   have a large list of addresses the sorting process can use a bit of CPU
   and memory but this is generally not excessive.  TLB currently only
   opens one connection at a time to each delivery host, but it does cause
   many copies of sendmail to run simultaneously.  Sendmail is not a small
   program, and can cause noticable resource consumption.  It is a good
   idea to check system CPU and memory usage during a delivery run and
   reduce the number of total batches if the load is excessive.


Q. TLB runs for longer than I expected.  What's it doing?

A. You can get timings sent to the system logger by having $log_level = 6,
   which is the default.  You'll get better timings if you have the
   Time::HiRes module.  If you want to see more in-depth timing data, turn
   up $log_level.  Setting it to 10 will give you turnaround time for every
   SMTP command that TLB sends.

   Now, what's taking all of the time?  Well, large lists take a while to
   read in, strip, sort and process.  You can use mungelist to do some of
   this ahead of time (see README.mungelist).  Most of the other operations
   don't take very long, but some versions of Sendmail will actually do a
   DNS lookup on every address that TLB sends.  This can take some time;
   you can see just how much by looking at a delivery run at $log_level =
   10.  TLB includes a few characters of the address so you can tell if
   certain addresses take a long time.  In my experience, there is always a
   group of addresses which slow things down.

   It helps if you run a caching DNS server on each host doing delivery.  A
   future version of TLB will open several connections to each host and
   manage them simultaneously so that a single slow address won't hold
   things up.
