From: skrenta@casbah.acns.nwu.edu (Rich Skrenta)
Subject: Re: Email header problems on SVR4.
Organization: Northwestern University, Evanston, Illinois
Date: Wed, 18 Nov 1992 16:39:03 GMT

les@chinet.chi.il.us (Leslie Mikesell) writes:
> Smail does each step internally so it can be much more efficient at the
> recursion.

My list of priorities puts efficiency last:

	1.  Is it capable of doing the transformations I want?
	2.  Easy to configure
	3.  Efficient

In other words, it must be possible, somehow, to get the mailer to
do what I want.  It would be nice if getting it to do so is relatively
easy.  I know some admins who are terrified of editing their sendmail.cf's
for fear it will break their whole mail system.  Sendmail satisfies #1,
but is poor for most people for #2.

upas doesn't fork for each rewrite, BTW.  I bet my mailer is done
with local delivery before smail3 has finished paging in.  Down with
monolithic megabyte executables with 10 links!  :-)

Of course, huge sites like rutgers.edu and uunet have a different
set of priorities:

	1.  Efficient
	2.  Able to do the required transformations
	3.  Easy to configure

I don't claim that upas-style mailers are industrial-strength.
(Although usl.com processes at least 10k message/day with it).

They are remarkably flexible and easy to configure, however.

For example:

> >	Map all mail for foo.com to bar.com:
> 
> An appropriate "paths" entry.

I can add a paths file with one line:

	alias	'(?*)@([^@]+)'	'sed -n -e "s/^\2[ \t]*//p" /usr/lib/paths'

> >	Make mail for bozo deliver locally instead
> 
> Can't be done - smail never looks at the local part of the address
> unless the host portion resolves to the local machine. (1)

I'd be surprised if this was true.  I want to hide hosts behind
a mail hub all the time.  What if your paths file mapped mail for
bozo onto the localhost?

I remember seeing someone over in comp.mail.sendmail asking
if he could customize his bounce messages, and have a copy of
the bounced mail saved.  This is the sort of thing that is trivial
to do in R4 mail, but nearly impossible in other mailers unless the
capability has been directly supported.

For example, I have different bounce messages and behaviors for
"unknown local user" vs. "no such host in this domain".

> Suppose a
> list expands to 100 aliases. How many external programs will the
> r4 mailer have to run to resolve the real user names and the paths to
> their hosts, and can it perform the delivery by grouping the expanded
> addresses by the "next-hop" sites instead of generating a copy per
> address?

You are right, the R4 mailer is weak in this area.  But this problem
is easy to work around for mailing lists on leaf sites.  I ran a list
of 150 or so addresses just fine under R4.

I even got the admin for my feed to stick a short "zrmail" script
into /usr/bin:

	#!/bin/sh
	uncompress | rmail $*

so I could send compressed mail.

	deliver	'host!(?*)'	'compress | rmail - -r host!rmail (\1)'
	deliver '([^!]+)!(?*)'	'rmail - -r \1!rmail (\2)'

A one line change to my config file to add compressed mail!

I'll admit that smail3 is probably better in many ways.  But being
able to wire in new capabilities like fake hosts, new lookup
mechanisms and transports in seconds without looking at a manual
is just great.

--
Rich Skrenta
Newsgroups: comp.unix.sys5.r4