sendmail split recipients - df file hard links

Ken Anderson (Pacific Internet) ka at PACIFIC.NET
Tue Mar 23 22:29:04 GMT 2004


Hello,

I did some digging and discovered that if sendmail is compiled with
"#define NEEDLINK 1"  in src/sendmail/conf.h, then the Build process
will replace calls to the system's link() function with a sendmail
replacement function (in conf.c) that copies the df files rather than
creating a hard link. (see src/sendmail/README)

This is a possible workaround for the problem where MailScanner will
only scan 1 df/qf pair that was split because split df files are hard
links and not copies by default, so MS can't get an exclusive lock on
the files. This tends to delay mail with a lot of recipients and keep
MailScanner from running large batches to process large recipient lists.

After recompiling sendmail and trying this, I discovered that the
increased disk i/o and the larger MailScanner batches that result when
spammed by a large recipient list is not necessarily a good thing! So,
I'm thinking now that this delay of multi-recipient mail is not a bug,
it's a feature! 99% of incoming mail that is addressed to more than one
user is spam. Slowing the processing of this mail in our case is a good
thing.

However, compiling sendmail this way may help in low volume mail
environments where sendmail accepts and splits messages with a lot of
valid recipients and low delay time is important.

Ken A
Pacific.Net



More information about the MailScanner mailing list