72 Mail
Sometimes, like a rare fungus, Unix must be appreciated at just the
right moment. For example, you can send mail to a mailing list. But
not if someone else just happens to be running newaliases at the
moment.
You see, newaliases processes /usr/lib/aliases like so much horse
meat; bone, skin, and all. It will merrily ignore typos, choke on peril-
ous whitespace, and do whatever it wants with comments except treat
them as comments, and report practically no errors or warnings. How
could it? That would require it to actually comprehend what it reads.
I guess it would be too hard for the mailer to actually wait for this
sausage to be completed before using it, but evidently Unix cannot
afford to keep the old, usable version around while the new one is
being created. You see, that would require, uh, actually, it would be
trivial. Never mind, Unix just isn’t up to the task.
As the alias list is pronounced dead on arrival, what should sendmail
do? Obviously, treat it as gospel. If you send mail to an alias like
ZIPPER-LOVERS which is at the end of the file, while it’s still gur-
gitating on ACME-CATALOG-REQUEST, sendmail will happily
tell you your addressee is unknown. And then, when it’s done, the
new mail database has some new bugs, and the old version—the last
known version that actually worked—is simply lost forever. And the
person who made the changes is not warned of any bugs. And the
person who sent mail to a valid address gets it bounced back. But
only sometimes.
STEP 4: Put the mail into the correct mailbox.
Don’t you wish?
Practically everybody who has been unfortunate enough to have their mes-
sages piped through sendmail had a special message sent to the wrong
reciepient. Usually these messages are very personal, and somehow uncan-
ningly sent to the precise person for whom receipt will cause the maximum
possible damage.
On other occasions, sendmail simply gets confused and can’t figure out
where to deliver mail. Other times, sendmail just silently throws the mail
away. Few people can complain about this particular sendmail mannerism,
because few people know that the mail has been lost. Because Unix lies in
so many ways, and because sendmail is so fragile, it is virtually impossible
to debug this system when it silently deletes mail: