Annotation of researchv10dc/man/man8/upas.8, revision 1.1.1.1

1.1       root        1: .TH UPAS 8
                      2: .CT 1 sa_auto sa_mortals
                      3: .SH NAME 
                      4: upas, rmail, translate \- mail delivery system
                      5: .SH SYNOPSIS
                      6: .B rmail
                      7: .I person ...
                      8: .PP
                      9: .B /usr/lib/upas/translate
                     10: .I name
                     11: .PP
                     12: .B /usr/lib/upas/auth
                     13: .I sender
                     14: .I receiver
                     15: .SH DESCRIPTION
                     16: Users send mail by
                     17: .IR mail (1).
                     18: Remote machines use
                     19: .I rmail.
                     20: Both call on
                     21: .I upas
                     22: programs.
                     23: .PP
                     24: Mail addresses are interpreted
                     25: according to rewrite rules as
                     26: described below.
                     27: When the addresses for a
                     28: .I mail
                     29: or
                     30: .I rmail 
                     31: command have been interpreted, they are bundled by
                     32: network and passed to network-specific handlers,
                     33: such as
                     34: .IR route.inet .
                     35: .PP
                     36: .I Translate
                     37: looks up a mail
                     38: .I name
                     39: in an alias list (see
                     40: .IR mail (6))
                     41: and places the result on standard output.
                     42: .PP
                     43: .I Auth
                     44: is called by
                     45: .I upas
                     46: to authorize mail delivery for each
                     47: .I sender, receiver
                     48: pair.
                     49: The mail is accepted if
                     50: the previous hop was a trusted gateway machine in
                     51: .FR /usr/lib/upas/gateways ,
                     52: or all the machines in the source or destination path are in 
                     53: .FR /usr/lib/upas/attlist .
                     54: .SS Rewrite rules
                     55: Each line of the file 
                     56: .F /usr/lib/upas/rewrite
                     57: is a rule.
                     58: Blank lines and lines beginning with
                     59: .B #
                     60: are ignored.
                     61: .PP
                     62: Each rewriting rule consists of (up to) 4 strings:
                     63: .TP
                     64: .I pattern
                     65: A regular expression in the style of
                     66: .IR regexp (3).
                     67: The
                     68: .I pattern
                     69: is applied to mail destination addresses.
                     70: The pattern match is case-insensitive
                     71: and must match the entire address.
                     72: .TP
                     73: .I type
                     74: The type of rule; see below.
                     75: .TP
                     76: .I arg1
                     77: An
                     78: .IR ed (1)
                     79: style replacement string, with
                     80: .BI \e n
                     81: standing for the text matched by the
                     82: .IR n th
                     83: parenthesized subpattern.
                     84: .TP
                     85: .I arg2
                     86: Another
                     87: .IR ed (1)
                     88: style replacement string.
                     89: .PP
                     90: In each of these fields the substring
                     91: .L \es
                     92: is replaced by the login id of the
                     93: sender and the substring
                     94: .L \el
                     95: is replaced by the name of the local machine.
                     96: .PP
                     97: When delivering a message,
                     98: .I mail
                     99: starts with the first rule and continues down the list until a pattern
                    100: matches the destination address.
                    101: It then performs one of the following actions depending on rule type:
                    102: .PD 0
                    103: .TP
                    104: .B >>
                    105: Append the mail to the file indicated by expanding
                    106: .IR arg1 ,
                    107: provided that file appears to be a valid mailbox.
                    108: .TP
                    109: .B |
                    110: Pipe the mail through the command formed from concatenating the
                    111: expanded
                    112: .I arg1
                    113: and
                    114: .I arg2.
                    115: .TP
                    116: .B alias
                    117: Replace the address by the address(es) specified
                    118: by expanding
                    119: .I arg1
                    120: and recur.
                    121: .TP
                    122: .B translate
                    123: Replace the address by the address(es) output by the
                    124: command formed by expanding
                    125: .I arg1
                    126: and recur.
                    127: .TP
                    128: .B auth
                    129: Call the program in expanded
                    130: .I arg1
                    131: and authorize(reject) the mail if it returns a zero(non-zero) return code.
                    132: .PD
                    133: .PP
                    134: .I Mail
                    135: expands the addresses recursively until each address has matched a
                    136: .L >>
                    137: or
                    138: .L |
                    139: rule or until the recursion depth indicates a rewriting loop
                    140: (currently 32).
                    141: .PP
                    142: An 
                    143: .L auth
                    144: operator is only applied once per address.
                    145: If no 
                    146: .L auth 
                    147: rule is encountered, the mail is accepted.
                    148: .PP
                    149: If several addresses match
                    150: .L |
                    151: rules and result in the same
                    152: expanded
                    153: .IR arg1 ,
                    154: the message is delivered to all those addresses
                    155: by a single command,
                    156: composed by concatenating the common
                    157: expanded
                    158: .I arg1
                    159: and each expanded
                    160: .IR arg2 .
                    161: This is meant to make less work of
                    162: a message to several recipients on the same machine.
                    163: For example, the rule
                    164: .IP
                    165: .L
                    166: ([^!]+)!(.+)   |   "uux - -a \\s \\1!rmail"   \\2
                    167: .LP
                    168: causes
                    169: .L mail r70!pjw r70!ken
                    170: to generate the single delivery command
                    171: .LR "uux -a rob r70!rmail pjw ken" .
                    172: .SH EXAMPLES
                    173: A sample rewrite file:
                    174: .PP
                    175: .EX
                    176: .ta \w'([^!]+)[%@]([^!@%]+) 'u +\w'alias  'u
                    177: # local mail
                    178: [^!@%]+        translate  "exec translate '&'"
                    179: local!([^!@%]+)        >>      /usr/spool/mail/\e1
                    180: \el!(.+)       alias   \e1     
                    181: .EE
                    182: .PP
                    183: .EX
                    184: # convert %@ format to ! format
                    185: (_822_)!((.+)!)?([^!]+)[%@]([^!%@]+)  \e
                    186:        alias   \e1!\e2\e5!\e4
                    187: ([^!]+)[%@]([^!@%]+)   alias   _822_!\e2!\e1
                    188: _822_!(.+)     alias   \e1     
                    189: .EE
                    190: .PP
                    191: .EX
                    192: # special domains
                    193: [^!]+wisc\e.edu!.+     alias   xunet!& 
                    194: .EE
                    195: .PP
                    196: .EX
                    197: # network gateways
                    198: (csnet|bitnet)!(.+)    alias   inet!&
                    199: acsnet!.+
                    200: .EE
                    201: .PP
                    202: .EX
                    203: # real networks
                    204: inet!([^!]+)!(.+)      |       "/usr/lib/upas/route.inet '\es' '\e1'" "'\e2'"
                    205: ([^!]+)!(.+)   |       "/usr/lib/upas/route '\es' '\e1'" "'\e2'"
                    206: .EE
                    207: .PP
                    208: .EX# anything else goes to research
                    209: .*     alias   research!&
                    210: .EE
                    211: .SH FILES
                    212: .TF /n/bowell/usr/lib/upas/mkfile
                    213: .TP
                    214: .F /usr/lib/upas/namefiles
                    215: list of files to search
                    216: .TP
                    217: .F $HOME/lib/names
                    218: private aliases
                    219: .TP
                    220: .F /usr/lib/upas/rewrite
                    221: rewriting rules
                    222: .TP
                    223: .F /usr/lib/upas/attlist
                    224: known AT&T machines
                    225: .TP
                    226: .F /usr/lib/upas/gateways
                    227: machines that check mail authorization reliably
                    228: .TP
                    229: .F /usr/lib/upas/translate
                    230: alias lookup
                    231: .TP
                    232: .F /usr/lib/upas/route.*
                    233: mail interfaces to specific networks
                    234: .TP
                    235: .F /usr/lib/upas/route
                    236: interface to local (i.e. AT&T) Datakit network
                    237: .TP
                    238: .F /bin/mail
                    239: shell file that calls the mailer
                    240: .TP
                    241: .F /usr/lib/upas/send
                    242: actually delivery program
                    243: .TP
                    244: .F /bin/rmail
                    245: linked to /usr/lib/upas/send
                    246: .TP
                    247: .F /usr/spool/mail/*
                    248: mailboxes
                    249: .TP
                    250: .F /usr/spool/mail/mail.log*
                    251: delivery logs
                    252: .TP
                    253: .F /n/bowell/usr/lib/upas/mkfile
                    254: updates various mail and uucp files
                    255: .TP
                    256: .F /etc/passwd
                    257: authentication
                    258: .TP
                    259: .F /tmp/ma*
                    260: temp file
                    261: .TP
                    262: .F /tmp/ml*
                    263: lock file
                    264: .TP
                    265: .F $HOME/dead.letter
                    266: unmailable text
                    267: .SH "SEE ALSO"
                    268: .IR uucp (1), 
                    269: .IR mail (1), 
                    270: .IR mail (6),
                    271: .IR smtp (8)
                    272: .br
                    273: D. L. Presotto and W. R. Cheswick,
                    274: `Upas\(ema simpler approach to network mail',
                    275: this manual, Volume\ 2

unix.superglobalmegacorp.com

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