4BSD/usr/man/man8/delivermail.8

Compare this file to the similar file:
Show the results in this format:

.TH DELIVERMAIL 8
.UC 4
.SH NAME
delivermail \- deliver mail to arbitrary people
.SH SYNOPSIS
.B /etc/delivermail
[
.BR \- [ fr ]
.I address
] [
.B \-a
] [
.BI \-e x
] [
.B \-n
] [
.B \-m
] [
.B \-s
] [
.B \-i
] [
.B \-h
.I N
] address ...
.SH DESCRIPTION
.I Delivermail
delivers a letter to one or more people,
routing the letter over whatever networks
are necessary.
.I Delivermail
will do inter-net forwarding as necessary
to deliver the mail to the correct place.
.PP
.I Delivermail
is not intended as a user interface routine;
it is expected that other programs will provide user-friendly
front ends,
and
.I delivermail
will be used only to deliver pre-formatted messages.
.PP
.I Delivermail
reads its standard input
up to a control-D
or a line with a single dot
and sends a copy of the letter found there
to all of the addresses listed.
If the
.B \-i
flag is given,
single dots are ignored.
It determines the network to use
based on the syntax of the addresses.
Addresses containing the character `@'
or the word \*(lqat\*(rq
are sent to the
.SM ARPANET;
addresses containing `!'
are sent to the
.SM UUCP
net,
and addresses containing `:' or `.'
are sent to the Berkeley network.
Other addresses are assumed to be local.
.PP
Local addresses are looked up in a file
constructed by
.IR newaliases (1)
from the data file
.I /usr/lib/aliases
and aliased appropriately.
Aliasing can be prevented by preceding the address
with a backslash or using the
.B \-n
flag.
Normally the sender is not included in any alias
expansions, e.g.,
if `john' sends to `group',
and `group' includes `john' in the expansion,
then the letter will not be delivered to `john'.
The
.B \-m
flag disables this suppression.
.PP
.I Delivermail
computes the person sending the mail
by looking at your login name.
The \*(lqfrom\*(rq person
can be explicitly specified by using the
.B \-f
flag;
or, if the
.B \-a
flag is given,
delivermail looks in the body of the message
for a \*(lqFrom:\*(rq or \*(lqSender:\*(rq
field in
.SM ARPANET
format.
The
.B \-f
and
.B \-a
flags can be used
only by the special users
.I root
and
.I network,
or if the person you are trying to become
is the same as the person you are.
The
.B \-r
flag is entirely equivalent to the
.B \-f
flag; it is provided for ease of interface only.
.PP
The
.BI \-e x
flag controls the disposition of error output,
as follows:
.TP 3n
.B e
Print errors on the standard output,
and echo a copy of the message when done.
It is assumed that a network server will
return the message back to the user.
.TP
.B m
Mail errors back to the user.
.TP
.B p
Print errors on the standard output.
.TP
.B q
Throw errors away;
only exit status is returned.
.TP
.B w
Write errors back to the user's terminal,
but only if the user is still logged in
and write permission is enabled;
otherwise errors are mailed back.
.LP
If the error is not mailed back,
and if the mail originated on the machine where the error occurred,
the letter is appended to the file
.I dead.letter
in the sender's home directory.
.PP
If the first character of the user name
is a vertical bar,
the rest of the user name is used as the name of a program
to pipe the mail to.
It may be necessary to quote the name of the user
to keep
.I delivermail
from suppressing the blanks from between arguments.
.PP
The message is normally edited to eliminate \*(lqFrom\*(rq
lines that might confuse other mailers.
In particular,
\*(lqFrom\*(rq lines in the header are deleted,
and \*(lqFrom\*(rq lines in the body are prepended by `>'.
The
.B \-s
flag saves \*(lqFrom\*(rq lines in the header.
.PP
The
.B \-h
flag gives a \*(lqhop-count\*(rq, i.e.,
a measure of how many times this message
has been processed by
.I delivermail
(presumably on different machines).
Each time
.I delivermail
processes a message,
it increases the hop-count by one;
if it exceeds 30
.I delivermail
assumes that an alias loop has occurred
and it aborts the message.
The hop-count defaults to zero.
.PP
.I Delivermail
returns an exit status
describing what it did.
The codes are defined in <sysexits.h>
.ta 3n +\w'EX_UNAVAILABLE'u+3n
.de XX
.ti \n(.iu
..
.in +\w'EX_UNAVAILABLE'u+6n
.XX
 	EX_OK	Successful completion on all addresses.
.XX
 	EX_NOUSER	User name not recognized.
.XX
 	EX_UNAVAILABLE	Catchall meaning necessary resources
were not available.
.XX
 	EX_SYNTAX	Syntax error in address.
.XX
 	EX_SOFTWARE	Internal software error,
including bad arguments.
.XX
 	EX_OSERR	Temporary operating system error,
such as \*(lqcannot fork\*(rq.
.XX
 	EX_NOHOST	Host name not recognized.
.SH FILES
.if t .ta 2i
.if n .ta 3i
/usr/lib/aliases	raw data for alias names
.br
/usr/lib/aliases.dir	data base of alias names
.br
/usr/lib/aliases.pag
.br
/bin/mail	to deliver uucp mail
.br
/usr/net/bin/v6mail	to deliver local mail
.br
/usr/net/bin/sendmail	to deliver Berknet mail
.br
/usr/lib/mailers/arpa	to deliver ARPANET mail
.br
/tmp/mail*	temp file
.br
/tmp/xscript*	saved transcript
.SH SEE\ ALSO
biff(1), binmail(1), mail(1), newaliases(1), aliases(5)
.SH BUGS
.I Delivermail
sends one copy of the letter
to each user;
it should send one copy
of the letter to each host
and distribute to multiple users there
whenever possible.
.PP
.I Delivermail
assumes the addresses can be represented as one word.
This is incorrect according to the
.SM ARPANET
mail protocol RFC 733 (NIC 41952),
but is consistent with the real world.