R. King Ables
The rts (for Return To Sender) script in Listing 1 responds
much like the Post Office does when it receives mail
with the wrong 
name or address: it returns the message to the sender
along with notification 
of why it is being returned. You can use this script
in several ways:
You can also use rts to tell senders that the 
address they've used was not precise enough (e.g., "smith")
and to provide a list of people they might be trying
to reach along 
with the appropriate addresses for each. This feature,
along with 
a "dummy" alias, could also be used to auto
reply to standard 
queries (for example to automatically mail your company's
on-line 
catalog to anyone requesting it).
We use rts with the sendmail(8) mail transport system
(a mailer originating with BSD and used on Suns and
many other common 
platforms). It should be usable with other mailers as
well. If your 
mailer system adds header lines or changes the standard
header lines, 
you may need to account for that. In general, you should
define an 
alias for any name which is to trigger rts and have
the alias 
pipe the contents of the mail message into the rts script.
In our /etc/aliases file (for sendmail) we define an
alias 
like this:
username: "|/usr/local/etc/rts username"
where "username" is the account name to be
aliased. 
In this case, rts is located in /usr/local/etc, but
it should be put wherever your local system administration
tools are 
kept.
When mail for username is received, it will be piped
into the 
rts script with username used as the first argument.
rts will generate a return message to the sending user.
The 
return message will include the original message and
an appropriate 
informative message for that particular address.
In the case where a user has left, we use a message
of the form:
"As of 01-April-92, Joe User is no longer at XYZ
Widgets, Inc. If you wish to contact him by electronic
mail, you may 
reach him at [new e-mail address]. You may also contact
him by phone 
at [new phone #]. Your message is being returned to
you by an automatic 
process so you may resend it if you wish. No human was
involved in 
returning your message to you."
These messages are put in /usr/local/lib/rts in 
files named for each user for whom you want to provide
the reply service.
You can also use rts to point e-mail correspondents
to more 
specific addresses. For example, if your site had several
users named 
smith, you could define an alias for "smith"
as:
smith: "|/usr/local/etc/rts smith"
and create a file /usr/local/lib/rts/smith 
containing:
"You have sent a message to smith@bigco.com. 
This is not sufficient to reach anyone here. We are
automatically 
returning your message to you so you can resend it to
the correct 
party. Please select an address from the list of possible
meanings 
below:
Bob Smith	bob
Jane Smith	jsmith
Janet Smith	janet
John Smith	jrs
Wanda Smith	wanda"
To automatically return an on-line company catalog,
establish 
an alias of "catalog" and put the catalog
in the /usr/local/lib/rts/catalog 
file.
Using rts, it is possible to help internal as well as
external 
users be sure they send messages to the correct place
the first time, 
before sensitive information winds up in the wrong place.
About the Author
King Ables has been a UNIX user since 1980 and has
been managing 
systems or developing system management and networking
tools since 
1983. He is currently doing system and network management
development 
for HaL Computer Systems in Austin, TX.