Annotation of coherent/d/bin/mail/smail/docs/smail.8, revision 1.1.1.1

1.1       root        1: .TH SMAIL 8
                      2: .SH NAME
                      3: smail, rmail \- UUCP mailer with routing
                      4: .SH SYNOPSIS
                      5: .B smail
                      6: [ options ] address ...
                      7: .br
                      8: .B rmail
                      9: [ options ] address ...
                     10: .SH DESCRIPTION
                     11: The
                     12: .I smail/rmail
                     13: program replaces
                     14: .IR /bin/rmail (1)
                     15: to become the UUCP mail transport mechanism.
                     16: They are links to the same executable.
                     17: .I rmail
                     18: receives mail from UUCP,
                     19: .I smail
                     20: introduces mail into UUCP.
                     21: .PP
                     22: .I smail/rmail
                     23: can work with or without
                     24: .IR sendmail (8),
                     25: or another intelligent mail system.
                     26: For hosts with just
                     27: .IR /bin/mail (1),
                     28: .I smail/rmail
                     29: subsumes some of the functions of
                     30: .I sendmail,
                     31: and hands only local mail to
                     32: .I /bin/mail.
                     33: For hosts with
                     34: .I sendmail,
                     35: .I smail/rmail
                     36: can act as UUCP front and back ends to
                     37: .I sendmail,
                     38: allowing
                     39: .I sendmail
                     40: to process all mail through the host.
                     41: As distributed, 'bang' mail that is not bound for a local
                     42: recipient will be passed directly to
                     43: .I uux
                     44: without calling
                     45: .I sendmail.
                     46: .PP
                     47: To varying degrees,
                     48: .I smail/rmail
                     49: automatically routes the addresses it processes.
                     50: .I smail/rmail
                     51: most often routes domain style addresses (i.e. user@domain), producing
                     52: a UUCP path (i.e. host!address) or a local address (i.e. user), but it can
                     53: also reroute explicit UUCP paths.
                     54: .SH OPTIONS
                     55: .TP
                     56: .B \-A
                     57: Print the resolved addresses.  Don't collect a message or invoke a mailer.
                     58: .TP
                     59: .B \-d
                     60: Be verbose and don't invoke other mailers.
                     61: .TP
                     62: .B \-v
                     63: Be verbose, but still invoke other mailers.
                     64: .TP
                     65: .BI \-h " hostname"
                     66: Set hostname.  The default is configuration dependent, but usually provided
                     67: by a system call such as
                     68: .IR gethostname (2)
                     69: or
                     70: .IR uname (2).
                     71: .TP
                     72: .BI \-H " hostdomain"
                     73: set hostdomain.  The default is configuration dependent.
                     74: .TP
                     75: .BI \-F " address"
                     76: use
                     77: .I address
                     78: on the From: line in locally generated mail.
                     79: .TP
                     80: .BI \-p " pathfile"
                     81: Set path database file name if not /usr/lib/uucp/paths.
                     82: .TP
                     83: .BI \-a " aliasfile"
                     84: For sites without sendmail, set alias database file name if not in
                     85: the place defined at compile time (see ALIASES in defs.h).
                     86: This is usually
                     87: .I /usr/lib/aliases
                     88: .TP
                     89: .BI \-n " namelist"
                     90: .I smail
                     91: supports another type of aliasing intended for full name resolution
                     92: using a sorted file,
                     93: .I namelist,
                     94: of name/address pairs.
                     95: This allows mail to [email protected] to be delivered
                     96: appropriately.  These aliases are by their nature very simple
                     97: since they are not composed of long lists of recipients for each alias.
                     98: They are also numerous, since mail to George.P.Burdell may be addressed
                     99: to Burdell, G.Burdell, George.Burdell, P.Burdell, G.P.Burdell, or
                    100: George.P.Burdell.  This simpler form of aliasing uses the same
                    101: fast searching algorithm that is used for the paths file, so
                    102: it keeps resolution time manageable.
                    103: .TP
                    104: .BI \-q " number"
                    105: Take
                    106: .I number
                    107: as the queueing threshold.
                    108: When routing mail (
                    109: .I -r, -R,
                    110: or domain addressed mail
                    111: ) to a given host, if the cost listed in the
                    112: .I paths
                    113: file is less than the queueing threshold, then the mail
                    114: will be sent immediately.  This overrides the default threshold
                    115: (see QUEUECOST in defs.h) of DEDICATED+LOW.
                    116: .TP
                    117: .BI \-m " number"
                    118: At most 
                    119: .I number
                    120: jobs will be handed to uux for immediate delivery
                    121: by a single invocation of
                    122: .I smail
                    123: (see MAXNOQUEUE in defs.h).
                    124: .TP
                    125: .BI \-u " uuxflags"
                    126: Use
                    127: .I uuxflags
                    128: as the flags passed to uux for remote mail.
                    129: This overrides any of the default values and other queueing strategies.
                    130: .TP
                    131: .B -c
                    132: Consult the paths file for the cost of the path even when not routing
                    133: the mail.  This makes it possible to use the cost information when
                    134: sending pure UUCP path mail without rerouting it.
                    135: .TP
                    136: .B \-r
                    137: Route the first component of a UUCP path (host!address) in addition to routing
                    138: domain addresses (user@domain).
                    139: .TP
                    140: .B \-R
                    141: Reroute UUCP paths, trying successively larger righthand substrings
                    142: of a path until a component is recognized.
                    143: .TP
                    144: .B \-l
                    145: Instead of routing a domain address, send it to the local mailer for
                    146: processing.  Normally, only local addresses go to the local mailer.
                    147: .TP
                    148: .B \-L
                    149: Send all addresses to the local mailer for processing, including UUCP paths.
                    150: .PP
                    151: Most of the flags are also compile time options, since
                    152: .I uux
                    153: does not normally invoke
                    154: .I rmail
                    155: with the desired flags.
                    156: .I smail
                    157: resets any preset
                    158: .B -l
                    159: or
                    160: .B -L
                    161: flags.
                    162: .B -l
                    163: flag causes 
                    164: .B rmail
                    165: to send all domain addresses through the local mailer,
                    166: to process addresses for non UUCP domains.
                    167: The
                    168: .B -L
                    169: flag causes
                    170: .B rmail
                    171: to send even explicit UUCP paths through the local mailer,
                    172: presumably to make use of other transport mechanisms.
                    173: In both cases, rmail defers any routing until smail gets hold it.
                    174: .SH ADDRESSES
                    175: .I smail/rmail
                    176: understands "user@domain" to be a domain address, "host!address" to be a
                    177: UUCP path, and anything else to be a local address.
                    178: .PP
                    179: Because hostile
                    180: .I rmail's
                    181: unpredictably interpret mixed UUCP/domain addresses,
                    182: .I smail/rmail
                    183: understands "domain!user" to be a domain address, and generates
                    184: "path!domain!user" when mailing to a cognate
                    185: .I smail/rmail
                    186: host.
                    187: To distinguish domain "domain!user" from UUCP "host!address", "domain"
                    188: contains at least one (1) period.
                    189: Unlike the old
                    190: .I /bin/rmail,
                    191: .I smail/rmail
                    192: gives precedence to @ over ! when parsing mixed addresses,
                    193: thus a!b@c is parsed as (a!b)@c, rather than a!(b@c).
                    194: .SH ROUTING
                    195: Because
                    196: .I smail/rmail
                    197: is the UUCP transport mechanism, it can only effect delivery on UUCP paths 
                    198: and local addresses; domain addresses require resolution into UUCP paths or
                    199: local addresses.  
                    200: To resolve a domain address,
                    201: .I smail/rmail
                    202: finds a route to the most specific part of the domain specification listed
                    203: in the routing table.
                    204: Two degrees of resolution can occur:
                    205: .RS
                    206: .PP
                    207: Full resolution:
                    208: .I smail/rmail
                    209: finds a route for the entire domain specification, and tacks the user
                    210: specification onto the end of the UUCP path.
                    211: The address can also fully resolve to a local address (the UUCP path is null).
                    212: .PP
                    213: Partial resolution:
                    214: .I smail/rmail
                    215: finds a route for only righthand part of the domain specification, so it 
                    216: tacks the complete address (in the form domain!user) onto the end of the 
                    217: UUCP path.
                    218: Since this syntax is not widely understood, UUCP gateways listed in
                    219: the path database must install new UUCP software, either
                    220: .I smail/rmail
                    221: or new
                    222: .I sendmail
                    223: configuration files (or both).
                    224: .RE
                    225: .PP
                    226: It is an error if a partially resolved address routes to the local host 
                    227: (a null UUCP path), since according to the routing table, the local
                    228: host is responsible for resolving the address more fully.
                    229: .PP
                    230: The
                    231: .B -r
                    232: flag causes
                    233: .I smail/rmail
                    234: to attempt to route the first component of a UUCP path, probably so it
                    235: can impress people with how many UUCP hosts it knows.
                    236: If this fails, it passes the unrouted address to
                    237: .I uux,
                    238: in case the path database is not complete.
                    239: The 
                    240: .B -R
                    241: flag causes
                    242: .I smail/rmail
                    243: to take a UUCP path and route the rightmost component of the path (save
                    244: the user name) possible.
                    245: This is mostly for hosts that have very up-to-date routing tables.
                    246: .PP
                    247: If a route cannot be discerned from the available routing database,
                    248: then one more attempt to route the mail is made by searching for an
                    249: entry in the database for a route to a
                    250: .I smart-host.
                    251: If this entry exists, then the mail will be forwarded along that route
                    252: to be delivered.  This allows a host to depend on another, presumably
                    253: better informed, host for delivering its mail.
                    254: This kind of arrangement should be worked out,
                    255: .I in advance,
                    256: with the
                    257: .IR smart-host 's
                    258: administrator.
                    259: .PP
                    260: After
                    261: .I smail/rmail
                    262: resolves an address, it reparses it to see if it is now a UUCP path or
                    263: local address.  If the new address turns out to be another
                    264: domain address, smail complains because we don't like to resolve more than once.
                    265: This error occurs when an address partially resolves the local host.
                    266: .PP
                    267: By default,
                    268: .I smail
                    269: will not alter the explicit bang path routing of any mail message.
                    270: If the stated path is unuseable, (i.e., the next hop host is unknown)
                    271: then smail will apply ALWAYS routing, and attempt to deliver the mail
                    272: to the potentially new address.  If this fails too, then REROUTE routing
                    273: will be applied to the address, and another attempt to deliver is made.
                    274: Lastly, an attempt to find a path to a better informed host
                    275: .I smart-host
                    276: will be made and the mail passed to that host.
                    277: .SH FROMMING
                    278: .I smail/rmail
                    279: collapses From_ and >From_ lines to generate a simple from argument, which
                    280: it can pass to
                    281: .I sendmail
                    282: or use to create its own "From" line.
                    283: The rule for fromming is: concatenate each "remote from" host (separating 
                    284: them by !'s), and tack on the address on the last From_ line; if that address 
                    285: is in user@domain format, rewrite it as domain!user; ignore host or
                    286: domain if either is simply the local hostname.  It also removes redundant
                    287: information from the From_ line.  For instance:
                    288: .sp
                    289: .ce
                    290:  ...!myhost!myhost.mydomain!...
                    291: .sp
                    292: becomes
                    293: .sp
                    294: .ce
                    295:  ...!myhost!...
                    296: .sp
                    297: Leading occurrences of the local host name are elided as well.
                    298: .PP
                    299: .I smail/rmail
                    300: generates it own From_ line, unless it is feeding
                    301: .I sendmail,
                    302: which is happy with the
                    303: .BI -f from
                    304: argument.
                    305: For UUCP bound mail,
                    306: .I smail/rmail
                    307: generates a "remote from hostname", where hostname is the UUCP hostname
                    308: (not the domain name), so that From_ can indicate a valid UUCP path, leaving
                    309: the sender's domain address in From:.
                    310: .SH HEADERS
                    311: Certain headers, To:, From:, Date, etc., are required by RFC822.
                    312: If these headers are absent in locally generated mail, they will
                    313: be inserted by smail.  Also, a line of trace information, called
                    314: a Received: line, will be inserted at the top of each message.
                    315: .SH UNDELIVERABLE MAIL"
                    316: Although nobody likes to have a mail message fail to reach its
                    317: intended destination, it somtimes happens that way.
                    318: Mail that is found to be undeliverable
                    319: (i.e., unknown user or unknown host)
                    320: will be returned to the sender.
                    321: .SH FILES
                    322: /usr/lib/uucp/paths            ascii path database
                    323: .br
                    324: /usr/lib/aliases               ascii alias database
                    325: .br
                    326: /usr/spool/uucp/mail.log               log of mail
                    327: .br
                    328: /tmp/mail.log                  record of mail
                    329: .SH SUPPORT
                    330: Enhancements, enhancement requests, trouble reports, etc.,
                    331: should be sent to
                    332: .sp
                    333: .ce
                    334: [email protected].
                    335: .sp
                    336: .SH "SEE ALSO"
                    337: .IR uux (1),
                    338: .IR paths (8),
                    339: .IR aliases (8)
                    340: .br
                    341: .IR sendmail (8)
                    342: .br
                    343: .IR binmail (1)
                    344: on BSD systems only
                    345: .br
                    346: .IR mail (1)
                    347: on System V systems
                    348: .SH VERSION
                    349: @(#)smail.8    2.5 (smail) 9/15/87

unix.superglobalmegacorp.com

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