Annotation of 40BSD/cmd/delivermail/delivermail.8, revision 1.1.1.1

1.1       root        1: .TH DELIVERMAIL 8
                      2: .SH NAME
                      3: delivermail \- deliver mail to arbitrary people
                      4: .SH SYNOPSIS
                      5: .B /etc/delivermail
                      6: [
                      7: .BR \- [ fr ]
                      8: .I address
                      9: ] [
                     10: .B \-a
                     11: ] [
                     12: .BR \-e [ empqw ]
                     13: ] [
                     14: .B \-n
                     15: ] [
                     16: .B \-m
                     17: ] [
                     18: .B \-s
                     19: ] [
                     20: .B \-i
                     21: ] [
                     22: .B \-h
                     23: .I N
                     24: ] address ...
                     25: .SH DESCRIPTION
                     26: .I Delivermail
                     27: delivers a letter to one or more people,
                     28: routing the letter over whatever networks
                     29: are necessary.
                     30: .I Delivermail
                     31: will do inter-net forwarding as necessary
                     32: to deliver the mail to the correct place.
                     33: .PP
                     34: .I Delivermail
                     35: is not intended as a user interface routine;
                     36: it is expected that other programs will provide user-friendly
                     37: front ends,
                     38: and
                     39: .I delivermail
                     40: will be used only to deliver pre-formatted messages.
                     41: .PP
                     42: .I Delivermail
                     43: reads its standard input
                     44: up to a control-D
                     45: or a single dot
                     46: and sends a copy of the letter found there
                     47: to all of the addresses listed.
                     48: If the
                     49: .B \-i
                     50: flag is given,
                     51: single dots are ignored.
                     52: It determines the network to use
                     53: based on the syntax of the addresses.
                     54: Addresses containing the character `@'
                     55: or the word ``at''
                     56: are sent to the
                     57: .SM ARPANET;
                     58: addresses containing `!'
                     59: are sent to the
                     60: .SM UUCP
                     61: net,
                     62: and addresses containing `:' or `.'
                     63: are sent to the Berkeley network.
                     64: Other addresses are assumed to be local.
                     65: .PP
                     66: Local addresses are looked up in the file
                     67: .I /usr/lib/mailaliases
                     68: and aliased appropriately.
                     69: Aliasing can be prevented by preceeding the address
                     70: with a backslash or using the
                     71: .B \-n
                     72: flag.
                     73: Normally the sender is not included in any alias
                     74: expansions, e.g.,
                     75: if `john' sends to `group',
                     76: and `group' includes `john' in the expansion,
                     77: then the letter will not be delivered to `john'.
                     78: The
                     79: .B \-m
                     80: flag disables this suppression.
                     81: .PP
                     82: .I Delivermail
                     83: computes the person sending the mail
                     84: by looking at your login name.
                     85: The ``from'' person
                     86: can be explicitly specified by using the
                     87: .B \-f
                     88: flag;
                     89: or, if the
                     90: .B \-a
                     91: flag is given,
                     92: delivermail looks in the body of the message
                     93: for a ``From:'' or ``Sender:''
                     94: field in
                     95: .SM ARPANET
                     96: format.
                     97: The
                     98: .B \-f
                     99: and
                    100: .B \-a
                    101: flags can be used
                    102: only by the special users
                    103: .I root
                    104: and
                    105: .I network,
                    106: or if the person you are trying to become
                    107: is the same as the person you are.
                    108: The
                    109: .B \-r
                    110: flag is entirely equivalent to the
                    111: .B \-f
                    112: flag; it is provided for ease of interface only.
                    113: .PP
                    114: The
                    115: .BI \-e x
                    116: flag controls the disposition of error output,
                    117: as follows:
                    118: .TP 3n
                    119: .B e
                    120: Print errors on the standard output,
                    121: and echo a copy of the message when done.
                    122: It is assumed that a network server will
                    123: return the message back to the user.
                    124: .TP
                    125: .B m
                    126: Mail errors back to the user.
                    127: .TP
                    128: .B p
                    129: Print errors on the standard output.
                    130: .TP
                    131: .B q
                    132: Throw errors away;
                    133: only exit status is returned.
                    134: .TP
                    135: .B w
                    136: Write errors back to the user's terminal,
                    137: but only if the user is still logged in
                    138: and write permission is enabled;
                    139: otherwise errors are mailed back.
                    140: .LP
                    141: If the error is not mailed back,
                    142: and if the mail originated on the machine where the error occurred,
                    143: the letter is appended to the file
                    144: .I dead.letter
                    145: in the sender's home directory.
                    146: .PP
                    147: If the first character of the user name
                    148: is a vertical bar,
                    149: the rest of the user name is used as the name of a program
                    150: to pipe the mail to.
                    151: It may be necessary to quote the name of the user
                    152: to keep
                    153: .I delivermail
                    154: from supressing the blanks from between arguments.
                    155: .PP
                    156: The message is normally editted to eliminate ``From''
                    157: lines that might confuse other mailers.
                    158: In particular,
                    159: ``From'' lines in the header are deleted,
                    160: and ``From'' lines in the body are prepended by `>'.
                    161: The
                    162: .B \-s
                    163: flag saves ``From'' lines in the header.
                    164: .PP
                    165: The
                    166: .B \-h
                    167: flag gives a ``hop-count'', i.e.,
                    168: a measure of how many times this message
                    169: has been processed by
                    170: .I delivermail
                    171: (presumably on different machines).
                    172: Each time
                    173: .I delivermail
                    174: processes a message,
                    175: it increases the hop-count by one;
                    176: if it exceeds 30
                    177: .I delivermail
                    178: assumes that an alias loop has occured
                    179: and it aborts the message.
                    180: The hop-count defaults to zero.
                    181: .PP
                    182: .I Delivermail
                    183: returns an exit status
                    184: describing what it did.
                    185: The codes are defined in
                    186: .IR mailexits.h :
                    187: .ta 3n +\w'EX_UNAVAILABLE'u+3n
                    188: .de XX
                    189: .ti \n(.iu
                    190: ..
                    191: .in +\w'EX_UNAVAILABLE'u+6n
                    192: .XX
                    193: 0      EX_OK   Succesful completion on all addresses.
                    194: .XX
                    195: 2      EX_NOUSER       User name not recognized.
                    196: .XX
                    197: 3      EX_UNAVAILABLE  Catchall meaning necessary resources
                    198: were not available.
                    199: .XX
                    200: 4      EX_SYNTAX       Syntax error in address.
                    201: .XX
                    202: 5      EX_SOFTWARE     Internal software error,
                    203: including bad arguments.
                    204: .XX
                    205: 6      EX_OSERR        Temporary operating system error,
                    206: such as ``cannot fork''.
                    207: .XX
                    208: 7      EX_NOHOST       Host name not recognized.
                    209: .DT
                    210: .PP
                    211: .SH FILES
                    212: .in +10
                    213: .ti -10
                    214: /usr/lib/mailaliases \- to alias names
                    215: .ti -10
                    216: /bin/mail \- to deliver local mail
                    217: .ti -10
                    218: /usr/net/bin/sendmail \- to deliver Berkeley mail
                    219: .ti -10
                    220: /usr/lib/mailers/arpa \- to deliver
                    221: .SM ARPANET
                    222: mail
                    223: .ti -10
                    224: /usr/lib/mailers/uucp \- to deliver
                    225: .SM UUCP
                    226: mail
                    227: .ti -10
                    228: /tmp/mail* \- temp file
                    229: .ti -10
                    230: /tmp/xscript* \- saved transcript
                    231: .ti -10
                    232: /dev/log \- to log status (optional)
                    233: .in -10
                    234: .SH SEE\ ALSO
                    235: mail(1), Mail(UCB), arpa-mailer(8), uucp-mailer(8),
                    236: mailaliases(5), userinfo(5)
                    237: .SH BUGS
                    238: .I Delivermail
                    239: sends one copy of the letter
                    240: to each user;
                    241: it should send one copy
                    242: of the letter to each host
                    243: and distribute to multiple users there
                    244: whenever possible.
                    245: .PP
                    246: .I Delivermail
                    247: assumes the addresses can be represented as one word.
                    248: This is incorrect according to the
                    249: .SM ARPANET
                    250: mail protocol RFC 733 (NIC 41952),
                    251: but is consistant with the real world.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.