sendmail message splitting defeats bandwidth savings?

Julian Field mailscanner at
Mon Nov 3 16:49:43 GMT 2003

At 16:04 03/11/2003, you wrote:
>On Mon, 3 Nov 2003 10:00:19 -0500, you wrote:
> >By contrast what I'd prefer MS to do is: if a message comes in bound for
> >multiple recipients and only a few of those recipients should be handled
> >specially (whitelisted), create separate copies of the message for those
> >recipients, queuing the files into mqueue by generating its own IDs.
>MS should be kept up to date with changes in de qf and df files of
>sendmail. And it should be able to distinguish between the different
>sets of changes.

One of the main reasons I haven't done this before is that reading message
filenames is a lot easier than creating new ones. For example, Sendmail has
changed its format at least once that I can immediately think of, and it is
non-trivial to work out (given an empty queue at startup) which format of
filename I should use.

When only sendmail is creating them, it's easy, I just use whatever
filenames it supplies.
But if I want to create unique new ones, then how do I work out what to
call them? I need to keep strictly to its naming scheme so that if the
sendmail folks tighten up their queue filename checking code, everything
keeps working. So it's not good enough to "just do something that works", I
have to get it 100% correct.

I also have to guarantee that any new filename I create won't be possibly
re-used later by the MTA.
For example...

The queues all start off empty, for simplicity.

A message 1111 comes in, with 2 recipients with different rules, so it
needs to be split. 2222 is a legal name for this MTA, and is not in use
right now. So MailScanner creates 2 output messages 1111 and 2222.
Then the MTA receives another message, which it decides to call 2222 (which
isn't in use in the incoming queue, so I can't stop it doing it).
MailScanner processes that and tries to create another message 2222 in the
outgoing queue, which clashes with the earlier one.

Consider what happens when 2222 has been in the outgoing queue for nearly a
week, and is still waiting to be delivered. How do I stop the incoming MTA
creating a queue file with a name that hasn't been used in the past

It can't be done.

I welcome comments to the contrary... :-)
Julian Field
MailScanner thanks transtec Computers for their support

PGP footprint: EE81 D763 3DB0 0BFD E1DC  7222 11F6 5947 1415 B654

More information about the MailScanner mailing list