I have yet to use TLB, but I have been splitting my lists into sublists
for delivery for years now. It's always seemed to me that such a system
only shifts the load, so that it's equally painful in two dimensions
instead of extremely painful in one and not really painful in another, on
the presumption that the impact of pain in any one dimension is an
exponential function of the amount of pain. :)
What has occurred to me is that what's needed is a small, multithreaded
program which basically does the following:
1) accepts a list of addresses to deliver a message to, and the message
2) gets DNS MX data, sorts into buckets based on mail relay
3) tosses all messages destined for local delivery to sendmail
4) starts a thread for each bucket, each attempting to deliver the
message to the remote mail relay.
5) if a message is unsuccessfully delivered, puts it in the sendmail queue
directory, same format as sendmail's queue files.
In other words, this would be a multithreaded application dedicated solely
to attempting the first delivery of a message. This would not be a mail
daemon, not a full delivery agent capable of handling a queue and expiring
messages after X days, no local delivery (thus avoiding setuid issues)
etc. You may want to have a configurable delay between the launch of each
thread, say 1/2 a second, to prevent your bandwidth from going all at
once; you might also make this adaptable based on statistics from the TCP
interface, or something.
I'm probably going to be collecting social security before Berkeley
sendmail is multithreaded, so something like this would probably have a
good long shelf life. I am of course too busy to implement this, but
there are a couple good x-platform threads packages one could start with.
email@example.com http://www.apache.org http://www.organic.com/jobs