📄 usenix.me
字号:
HostA.Eventually the mail would arrive atHostA,which would then do final deliveryto user.q eric..sh 2 "Mail to Files and Programs".ppFiles and programs are legitimate message recipients.Files provide archival storage of messages,useful for project administration and history.Programs are useful as recipients in a variety of situations,for example,to maintain a public repository of systems messages(such as the Berkeley.i msgsprogram)..ppAny address passing through the initial parsing algorithmas a local address(i.e, not appearing to be a valid address for another mailer)is scanned for two special cases.If prefixed by a vertical bar (\c.q \^|\^ )the rest of the address is processed as a shell command.If the user name begins with a slash mark (\c.q /\^ )the name is used as a file name,instead of a login name..sh 2 "Aliasing, Forwarding, Inclusion".pp.i Sendmailreroutes mail three ways.Aliasing applies system wide.Forwarding allows each user to reroute incoming maildestined for that account.Inclusion directs.i sendmailto read a file for a list of addresses,and is normally usedin conjunction with aliasing..sh 3 "Aliasing".ppAliasing maps local addresses to address lists using a system-wide file.This file is hashed to speed access.Only addresses that parse as localare allowed as aliases;this guarantees a unique key(since there are no nicknames for the local host)..sh 3 "Forwarding".ppAfter aliasing,if an recipient address specifies a local user.i sendmailsearches for a.q .forwardfile in the recipient's home directory.If it exists,the message is.i notsent to that user,but rather to the list of addresses in that file.Oftenthis list will contain only one address,and the feature will be used for network mail forwarding..ppForwarding also permits a user to specify a private incoming mailer.For example,forwarding to:.(b"\^|\|/usr/local/newmail myname".)bwill use a different incoming mailer..sh 3 "Inclusion".ppInclusion is specified in RFC 733 [Crocker77] syntax:.(b:Include: pathname.)bAn address of this form reads the file specified by.i pathnameand sends to all users listed in that file..ppThe intent is.i notto support direct use of this feature,but rather to use this as a subset of aliasing.For example,an alias of the form:.(bproject: :include:/usr/project/userlist.)bis a method of letting a project maintain a mailing listwithout interaction with the system administration,even if the alias file is protected..ppIt is not necessary to rebuild the index on the alias databasewhen a :include: list is changed..sh 2 "Message Collection".ppOnce all recipient addresses are parsed and verified,the message is collected.The message comes in two parts:a message header and a message body,separated by a blank line.The body is an uninterpretedsequence of text lines..ppThe header is formated as a series of linesof the form.(b field-name: field-value.)bField-value can be split across lines by starting the followinglines with a space or a tab.Some header fields have special internal meaning,and have appropriate special processing.Other headers are simply passed through.Some header fields may be added automatically,such as time stamps..sh 1 "THE UUCP PROBLEM".ppOf particular interestis the UUCP network.The explicit routingused in the UUCP environmentcauses a number of serious problems.First,giving out an addressis impossiblewithout knowing the address of your potential correspondent.This is typically handledby specifying the addressrelative to some.q "well-known"host(e.g.,ucbvax or decvax).Second,it is often difficult to computethe set of addressesto reply towithout some knowledgeof the topology of the network.Although it may be easy for a human beingto do thisunder many circumstances,a program does not have equally sophisticated heuristicsbuilt in.Third,certain addresses will become painfully and unnecessarily long,as when a message is routed through many hosts in the USENET.And finally,certain.q "mixed domain"addressesare impossible to parse unambiguously \*-e.g.,.(ldecvax!ucbvax!lbl-h!user@LBL-CSAM.)lmight have many possible resolutions,depending on whether the message was first routedto decvaxor to LBL-CSAM..ppTo solve this problem,the UUCP syntaxwould have to be changed to use addressesrather than routes.For example,the address.q decvax!ucbvax!ericmight be expressed as.q eric@ucbvax.UUCP(with the hop through decvax implied).This address would itself be a domain-based address;for example,an address might be of the form:.(lmark@d.cbosg.btl.UUCP.)lHosts outside of Bell Telephone Laboratorieswould then only need to knowhow to get to a designated BTL relay,and the BTL topologywould only be maintained inside Bell..ppThere are three major problemsassociated with turning UUCP addressesinto something reasonable:defining the namespace,creating and propagating the necessary software,and building and maintaining the database..sh 2 "Defining the Namespace".ppPutting all UUCP hosts into a flat namespace(e.g.,.q \&...@host.UUCP )is not practical for a number of reasons.First,with over 1600 sites already,and (with the increasing availability of inexpensive microcomputersand autodialers)several thousand more coming within a few years,the database update problemis simply intractableif the namespace is flat.Second,there are almost certainly name conflicts today.Third,as the number of sites growthe names become ever less mnemonic..ppIt seems inevitablethat there be some sort of naming authorityfor the set of top level namesin the UUCP domain,as unpleasant a possibilityas that may seem.It will simply not be possibleto have one host resolving all names.It may however be possibleto handle thisin a fashion similar to that of assigning names of newsgroupsin USENET.However,it will be essential to encourage everyoneto become subdomains of an existing domainwhenever possible \*-even though this will certainly bruise some egos.For example,if a new host named.q blidwere to be added to the UUCP network,it would probably actually be addressed as.q d.bli.UUCP(i.e.,as host.q din the pseudo-domain.q blirather than as host.q blidin the UUCP domain)..sh 2 "Creating and Propagating the Software".ppThe software required to implement a consistent namespaceis relatively trivial.Two modules are needed,one to handle incoming mailand one to handle outgoing mail..ppThe incoming modulemust be prepared to handle either old or new style addresses.New-style addressescan be passed through unchanged.Old style addressesmust be turned into new style addresseswhere possible..ppThe outgoing moduleis slightly trickier.It must do a database lookup on the recipient addresses(passed on the command line)to determine what hosts to send the message to.If those hosts do not accept new-style addresses,it must transform all addresses in the header of the messageinto old style using the database lookup..ppBoth of these modulesare straightforwardexcept for the issue of modifying the header.It seems prudent to choose one formatfor the message headers.For a number of reasons,Berkeley has elected to use the ARPANET protocolsfor message formats.However,this protocol is somewhat difficult to parse..ppPropagation is somewhat more difficult.There are a large number of hostsconnected to UUCPthat will want to run completely standard systems(for very good reasons).The strategy is not to convert the entire network \*-only enough of it it alleviate the problem..sh 2 "Building and Maintaining the Database".ppThis is by far the most difficult problem.A prototype for this databasealready exists,but it is maintained by handand does not pretend to be complete..ppThis problem will be reduced considerablyif people choose to group their hostsinto subdomains.This would require a global updateonly when a new top level domainjoined the network.A message to a host in a subdomaincould simply be routed to a known domain gatewayfor further processing.For example,the address.q eric@a.bli.UUCPmight be routed to the.q bligatewayfor redistribution;new hosts could be addedwithin BLIwithout notifying the rest of the world.Of course,other hosts.i couldbe notified as an efficiency measure..ppThere may be more than one domain gateway.A domain such as BTL,for instance,might have a dozen gateways to the outside world;a non-BTL sitecould choose the closest gateway.The only restrictionwould be that all gatewaysmaintain a consistent view of the domainthey represent..sh 2 "Logical Structure".ppLogically,domains are organized into a tree.There need not be a host actually associatedwith each level in the tree \*-for example,there will be no host associated with the name.q UUCP.Similarly,an organization might group names together for administrative reasons;for example,the name.(lCAD.research.BigCorp.UUCP.)lmight not actually have a host representing.q research..ppHowever,it may frequently be convenient to have a hostor hoststhat.q representa domain.For example,if a single host exists thatrepresentsBerkeley,then mail from outside Berkeleycan forward mail to that hostfor further resolutionwithout knowing Berkeley's(rather volatile)topology.This is not unlike the operationof the telephone network..ppThis may also be usefulinside certain large domains.For example,at Berkeley it may be presumedthat most hosts know about other hostsinside the Berkeley domain.But if they process an addressthat is unknown,they can pass it.q upstairsfor further examination.Thus as new hosts are addedonly one host(the domain master).i mustbe updated immediately;other hosts can be updated as convenient..ppIdeally this name resolution processwould be performed by a name server(e.g., [Su82b])to avoid unnecessary copyingof the message.However,in a batch networksuch as UUCPthis could result in unnecessary delays..sh 1 "COMPARISON WITH DELIVERMAIL".pp.i Sendmailis an outgrowth of.i delivermail .The primary differences are:.npConfiguration information is not compiled in.This change simplifies many of the problemsof moving to other machines.It also allows easy debugging of new mailers..npAddress parsing is more flexible.For example,.i delivermailonly supported one gateway to any network,whereas.i sendmailcan be sensitive to host namesand reroute to different gateways..npForwarding and:include:features eliminate the requirement that the system alias filebe writable by any user(or that an update program be written,or that the system administration make all changes)..np.i Sendmailsupports message batching across networkswhen a message is being sent to multiple recipients..npA mail queue is provided in.i sendmail.Mail that cannot be delivered immediatelybut can potentially be delivered lateris stored in this queue for a later retry.The queue also provides a buffer against system crashes;after the message has been collectedit may be reliably redeliveredeven if the system crashes during the initial delivery..np.i Sendmailuses the networking support provided by 4.2BSDto provide a direct interface networks such as the ARPANETand/or Ethernetusing SMTP (the Simple Mail Transfer Protocol)over a TCP/IP connection..+c.ceREFERENCES.nr ii 1.5i.ip [Crocker77]Crocker, D. H.,Vittal, J. J.,Pogran, K. T.,andHenderson, D. A. Jr.,.ulStandard for the Format of ARPA Network Text Messages.RFC 733,NIC 41952.In [Feinler78].November 1977..ip [Crocker82]Crocker, D. H.,.ulStandard for the Format of Arpa Internet Text Messages.RFC 822.Network Information Center,SRI International,Menlo Park, California.August 1982..ip [Feinler78]Feinler, E.,andPostel, J.(eds.),.ulARPANET Protocol Handbook.NIC 7104,Network Information Center,SRI International,Menlo Park, California.1978..ip [Nowitz78]Nowitz, D. A.,andLesk, M. E.,.ulA Dial-Up Network of UNIX Systems.Bell Laboratories.InUNIX Programmer's Manual, Seventh Edition,Volume 2.August, 1978..ip [Schmidt79]Schmidt, E.,.ulAn Introduction to the Berkeley Network.University of California, Berkeley California.1979..ip [Shoens79]Shoens, K.,.ulMail Reference Manual.University of California, Berkeley.In UNIX Programmer's Manual,Seventh Edition,Volume 2C.December 1979..ip [Solomon81]Solomon, M.,Landweber, L.,andNeuhengen, D.,.ulThe Design of the CSNET Name Server.CS-DN-2.University of Wisconsin,Madison.October 1981..ip [Su82a]Su, Zaw-Sing,andPostel, Jon,.ulThe Domain Naming Convention for Internet User Applications.RFC819.Network Information Center,SRI International,Menlo Park, California.August 1982..ip [Su82b]Su, Zaw-Sing,.ulA Distributed System for Internet Name Service.RFC830.Network Information Center,SRI International,Menlo Park, California.October 1982.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -