LSTSRV-L Archives

LISTSERV Site Administrators' Forum

LSTSRV-L

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Valdis Kletnieks <[log in to unmask]>
Wed, 13 Mar 1996 12:59:44 -0500
text/plain (58 lines)
On Wed, 13 Mar 1996 07:38:32 EST, you said:
> My listserv/sendmail hums fine on a SPARC20 with lists as large as
> 23,000+ subscribers but could be better. I have MAXBSMTP at 100 but
> my sendmail To: header is the default and pumps out only about half
> that value. Here is my question. What do I change in sendmail to up
> the number of characters sent in the To: header line for SMTP mail?
 
(Am cc:ing the list because others may be interested as well)
 
We did this locally mostly because listserv.vt.edu often hands *LARGE*
jobs to mail.vt.edu (we have lists that have 2,000+ local recipients),
and our mailserver was dying when listserv would hand it a lot of small
jobs (see the addendum below).
 
Step 1:  raise MAXBSMTP in the go.user file, so LISTSERV puts more
recipients per envelope as it hands it to sendmail.
 
If this doesn't gain you enough, you proceed to
 
Step 2:  Recompile Sendmail 8.7.5 with a flag of -DTOBUFSIZE=4096
or some similar value.  The default is set in the conf.h file, near
line 1785.
 
Step 3: You may also have to play games with the value of MAXLINE (set on
line 62 of conf.h).
 
The basic theory here is that the deliver.c code builds a syslog() msg
of who is being delivered to (in an array tobuf[] declared on line 731
of deliver.c), and won't deliver more in one batch than it
can syslog().  If you can syslog() more recipients, you can deliver more.
 
The contents of the tobuf[] array are basically a string with the recipients,
so it looks like "<[log in to unmask]>,<[log in to unmask]>,<[log in to unmask]>
and so on.  Those brackets and commas add up after 200 or so recipients...
 
We are running Sendmail 8.7.5 under AIX 3.2.5, with TOBUFSIZE and MAXLINE
both set to 4096, and this gets us to about 250 recipients.
 
*** WARNING *** Sendmail 8.7.1 and later seems to be smart enough to
Do The Right Thing with syslog() (i.e. if there's a LOT of recipients
and TOBUFSIZE is larger than SYSLOG_BUFSIZE it will print multiple
messages).  Sendmail 8.6 is *NOT* smart enough.  If you have not installed
a vendor patch for syslog() overruns (as per recent CERT advisories) you
*CAN* cause your sendmail to crash.
 
Addendum:  Once we got Listserv 1.8 to put 250 recipients in a transaction,
and got sendmail on listserv.vt.edu to hand 250 RCPT TO;s at a time to
mail.vt.edu, we also had to get the local 'deliver' program on mail.vt.edu
to accept 250 recipients.  Our homegrown 'deliver' was clean on what it would
accept in argv, but we had to change the value of MAXPV in conf.h from its
default 40 up to 270 or so.
 
 
--
                                Valdis Kletnieks
                                Computer Systems Engineer
                                Virginia Tech

ATOM RSS1 RSS2