• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

FAQH A D22-Sep-19983.1 KiB7251

INSTALLH A D22-Sep-19983.6 KiB9665

READMEH A D22-Sep-19984.4 KiB8769

README.loglevelsH A D22-Sep-1998571 2826

README.mungelistH A D22-Sep-19981 KiB2518

TIPSH A D22-Sep-19982.6 KiB6748

TODOH A D22-Sep-1998915 2518

complete.tlbH A D03-May-202213.8 KiB326296

mj.tlbH A D03-May-20222.1 KiB7969

mungelistH A D03-May-2022817 4734

simple.tlbH A D03-May-2022659 2216

tlbH A D03-May-202246.4 KiB1,690981

README

1This is an alpha release of TLB (List Batcher).  It has been lightly
2tested; use with care.
3
4
5What is TLB?
6
7TLB is a program which accepts a message and sends it to a list of
8addresses, using multiple SMTP transactions to do so.  The idea is to allow
9multiple deliveries in parallel.  It is in some ways similar to the program
10bulk_mailer by Keith Moore and was indeed inspired by it, but were
11bulk_mailer simply calls Sendmail multiple times, TLB can open SMTP
12connections to any host (or any program) which allows it and have that host
13manage the final delivery of the message.
14
15TLB allows flexibility in which and how many addresses are sent in each
16SMTP transaction.  Addresses are split into distinct lists according to
17regular expressions.  These lists are then sorted so that like domains
18cluster together, and finally the lists are split into batches of
19configurable sizes and properties.  These batches are then distributed
20evenly among lists of hosts which will manage final delivery.  This system
21allows for remote exploders for overseas addresses and other useful
22configurations.
23
24TLB can also pipe the message to a list of local programs.  The Majordomo
25list manager (and perhaps others; I've no familiarity with them) generally
26performs functions like archiving and digestification through programs that
27are included along with the list of addresses in the outgoing alias.  Since
28TLB replaces the list of addresses, it makes sense to also allow it to
29replace the other programs.  This allows the complete elimination of the
30normal outgoing aliases associated with a list (and thus the complete
31elimination of the security headaches normally associated with the presence
32of outgoing aliases).  This has not been tested with digested lists at all,
33though it should work.  It does work with moderated lists.
34
35
36Requirements:
37
38TLB requires Perl version 5.003.  Version 5.002 should work but has not
39been tested.  Versions less than 5.002 will definitely not work without
40some source hackery, as TLB makes use of subroutine prototyping.  Perl4?
41Forget it.  TLB makes extensive use of complex data structures and
42references which just aren't doable in ancient versions of Perl.
43
44The standard packages Getopt, POSIX, Sys::Syslog, Socket and IPC::Open2 are
45used.  These come with Perl; if you don't have them then you should check
46to see that Perl was installed properly at your site.  Note also that
47Sys::Syslog requires that your system headers be run through the h2ph
48program; this is normally done in any Perl installation but it is not done
49automatically and therefore is occasionally forgotten.
50
51In addition, routines from the packages IO, TimeDate, MailTools and libnet
52are used. These packages are available from CPAN, the Comprehensive Perl
53Archive Network.  Look at <URL:http://www.perl.com/perl/> for more
54information on accessing CPAN.  Possibly out of date copies are kept in
55<URL:ftp://ftp.hpc.uh.edu/pub/tlb/>.  In particular, the IO package must be
56at least version 1.09 due to bugs in the socket code of earlier versions.
57
58The Time::Hires package is also optionally supported; with it, TLB can
59generate more accurate timing data.
60
61
62Bugs:
63
64TLB probably has bugs.  I have tested most of the features through what I
65believe to be normal operating conditions and it performs without problems.
66I have also tested it under some error conditions (mainly down hosts and
67hosts that refuse connection) without problems.  TLB will currently act
68unpredictably if a hosts accepts a connection but will not accept mail
69(either through an error greeting or through some error during the SMTP
70exchange).  It will most likely drop the batch and continue without marking
71the host down or enabling backup hosts.  This will change.
72
73TLB runs cleanly with all warnings enabled and with all strict checks.  It
74has not been tested with taint checking, though it is not really necessary
75since it is assumed that tlb will run with no special privileges.
76
77As with any program not written in machine language, TLB is sensitive to
78problems in the language it is written in.  Perl is a complex system and
79has bugs of its own, some of which interfere with TLB.  There is a problem
80on some systems where perl randomly crashes when external programs are
81called repeatedly.  Please contact me if you experience any problems of
82this nature.
83
84Report all problems to me, Jason Tibbitts, at tibbs@hpc.uh.edu.  There is
85not currently a mailing list for TLB, but one will be started if there is
86enough demand.
87

README.loglevels

1This shows the information that is logged at each log_level.
2
3warning
4 1 Abort
5 2 Failsafe mode
6notice
7 3 Marking host down
8   Socket open error
9   Too long waiting for child exit
10   SMTP response timeout
11 4 Non-fatal SMTP response
12   Fatal SMTP Response
13 5 Single rejected address
14info
15 6 Compilation times
16   Message reading time
17   Address reading time
18   Batching time
19   External spawning time
20   Total delivery time
21 7 Dest delivery time
22 8 Starting
23   Batch delivery time
24 9 Connection opening time
2510 SMTP command turnaround time
2611 SMTP Command
2712 SMTP Response
28

README.mungelist

1The mungelist program can perform two operations on a list of addresses:
2
31. Strip comments each address
42. Sort the list in reverse-domain order
5
6For very large lists the time savings caused by eliminating the sorting
7process may be significant, and a list that is not completely sorted does
8not overly disrupt the batching process.  Thus you can sort your list at
9various intervals and tell TLB to skip the sorting process.  You should
10check the logs to see just how much time TLB is spending sorting your
11addresses.
12
13It may be the case that stripping the addresses takes a significant anount
14of time.  TLB really prefers to deal with only stripped addresses, so if
15you have unstripped addresses in a list but you tell TLB that it has been
16stripped, the results will be unsatisfactory.
17
18Mungelist takes two options (you may specify one or both):
19
20 -o  sOrt the list of addresses
21 -t  sTrrip comments from the addresses
22
23It takes one argument, the name of the address file to process.  The
24processed list will appear on standard output.
25