############################################################ ############################################################ ##### ##### SENDMAIL CONFIGURATION FILE ##### ##### Generic Arpa Configuration ##### ##### @(#)exampleether.mc 2.1 (ULTRIX-11) 12/19/85 ##### ############################################################ ############################################################ ############################################################ ### local info ############################################################ # internet hostname -- don't change DA$w # domain -- don't change # our domain, domains we talk to LOCAL being internet DDUUCP CDUUCP LOCAL ENET # official hostname -- don't change Dj$w.$D # UUCP name -- don't change DU$w # local network hosts # This reads in the hostnames out of /etc/hosts. # If you DO have networking, leave as is. # # If you DON'T have networking, insert # at beginning of next line. FS/etc/hosts %*[0123456789.]%s # Exception clause for machines that are in /etc/hosts, # but do not speak SMTP (e.g., not running sendmail) # Typically, these machines get their mail through UUCP. # The CF line specifies these machines. # The DF line specifies a forwarding host to deal with the # machines specified in CF. If you have direct UUCP connections # for these machines, then the DF line should be yourself ("DF$w"). # # If you DON'T have any bizzare machines like this, then just # leave the CF line commented out (as is). # DF$w #CFhost1 host2 host3 # Forwarding host for enet # If you DON'T have a DECnet forwarding node, leave commented out (as is). # # If you DO have a DEcnet forwarding node, then "decnetgateway" is # the name of the host to send DECnet mail to. Change "decnetgateway" # to the name of your gateway machine (for example DEpeachy), then # remove the comment (#) from in from of the DE line. #DEdecnetgateway # Directly connected uucp hosts and forwarder for the rest. # If you DON'T have a UUCP forwarder, leave as is. # # If you DO have a UUCP forwarder, then remove the comment (#) from in # front of the FZ line. Then, replace the "$w" argument on the DZ line # with the name of the site to forward UUCP traffic to (i.e., DZpeachy). DZ$w #FZ/usr/lib/uucp/L.sys %[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-] # local users and forwarder for rest # If you DON'T have a general forwarding node, leave as is; the DN line # is DN$w and the FN and CN lines remain commented out (as is). # # If you DO have a forwarding host, first, replace the "$w" argument on # the DN line with the forwarding hostname. Next, add any aliases that you # wish translated locally (not sent to the forwarding host) to those aliases # already on the CN line (MAILER-DAEMON postmaster admin). # This list of names applys only to aliases, i.e., each name is not in # the /etc/passwd file but is in the /usr/lib/aliases database on the # local machine. DN$w #FN/etc/passwd %[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRRSTUVWXYZ_-] #CN MAILER-DAEMON postmaster admin # THE REST OF THIS FILE IS BOILER-PLATE, AND SHOULD NOT BE MODIFIED # UNLESS YOU KNOW WHAT YOU ARE DOING. THIS IS NOT A TASK TO BE TAKEN # LIGHTLY. TRUST US, YOU DON'T WANT TO DEAL WITH THIS UNLESS YOU ARE # FORCED TO. ############################################################ # # General configuration information # # This information is basically just "boiler-plate"; it must be # there, but is essentially constant. # # Information in this file should be independent of location -- # i.e., although there are some policy decisions made, they are # not specific to Berkeley per se. # # @(#)base.m4 1.2 (ULTRIX) 2/8/85 # ############################################################ # @(#)version.m4 1.2 (ULTRIX) 2/8/85 DV4.7 ########################## ### Special macros ### ########################## # my name DnMAILER-DAEMON # UNIX header format DlFrom $g $d # delimiter (operator) characters Do.:%@!^=/[] # format of a total name Dq$g$?x ($x)$. # SMTP login message De$j Sendmail $v/$V ready at $b ################### ### Options ### ################### # location of alias file OA/usr/lib/aliases # default delivery mode (deliver in background) Odbackground # (don't) connect to "expensive" mailers #Oc # temporary file mode OF0600 # default GID Og1 # location of help file OH/usr/lib/sendmail.hf # log level OL9 # default messages to old style Oo # queue directory OQ/usr/spool/mqueue # read timeout -- violates protocols Or2h # status file OS/usr/lib/sendmail.st # queue up everything before starting transmission Os # default timeout interval OT3d # time zone names (V6 only) OtEST,EDT # default UID Ou1 # wizard's password OWXXXnot.wanted ############################### ### Message precedences ### ############################### Pfirst-class=0 Pspecial-delivery=100 Pjunk=-100 ######################### ### Trusted users ### ######################### Troot Tdaemon Tuucp Tnetwork ############################# ### Format of headers ### ############################# H?P?Return-Path: <$g> H?R?Received: $?sfrom $s $.by $j ($v/$V) id $i; $b H?D?Resent-Date: $a H?D?Date: $a H?F?Resent-From: $q H?F?From: $q H?x?Full-Name: $x HSubject: # HPosted-Date: $a # H?l?Received-Date: $b H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.$i@$j> ########################### ### Rewriting rules ### ########################### ################################ # Sender Field Pre-rewriting # ################################ S1 #R$*<$*>$* $1$2$3 defocus ################################### # Recipient Field Pre-rewriting # ################################### S2 #R$*<$*>$* $1$2$3 defocus ################################# # Final Output Post-rewriting # ################################# S4 R@ $@ handle <> error addr # externalize local domain info R$*<$*.LOCAL>$* $1<$2>$3 change local info R$*<$+>$* $1$2$3 defocus R@$+:$+:$+ $@@$1,$2:$3 <route-addr> canonical # UUCP must always be presented in old form R$+@$-.UUCP $2!$1 u@h.UUCP => h!u # ENET must always be presented in its proper form R$+@$-.ENET $2::$1 u@h.ENET => h::u # delete duplicate local names -- mostly for arpaproto.mc R$+%$=w@$=w $1@$3 u%ho@ho => u@ho #R$+%$=w@$=w.ARPA $1@$3.ARPA u%ho@ho => u@ho R$=S!$+@$=w $1!$2 lho!u@ho => lho!u R$=S::$+@$=w $1::$2 lho::u@ho => lho::u ########################### # Name Canonicalization # ########################### S3 # handle "from:<>" special case R<> $@@ turn into magic token # basic textual canonicalization R$*<$+>$* $2 basic RFC821/822 parsing R$+ at $+ $1@$2 "at" -> "@" for RFC 822 R$*<$*>$* $1$2$3 in case recursive # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later R@$+,$+ @$1:$2 change all "," to ":" # localize and dispose of domain-based addresses R@$+:$+ $@$>6<@$1>:$2 handle <route-addr> # more miscellaneous cleanup R$+ $:$>8$1 host dependent cleanup R$+@$=S$* $:$1@$2.LOCAL our own hosts R$+:$*;@$+ $@$1:$2;@$3 list syntax R$+@$+ $:$1<@$2> focus on domain R$+<$+@$+> $1$2<@$3> move gaze right R$-!$+<@$~S> $1!$2@$3 defocus - not local host R$+<@$+.LOCAL> $@$>6$1<@$2.LOCAL> already canonical R$+<@$+.ENET> $@$>6$1<@$2.ENET> already canonical R$+<@$+.UUCP> $@$>6$1<@$2.UUCP> already canonical # convert old-style addresses to a domain-based address R$-::$+ $@$>6$2<@$1.ENET> resolve enet names R$+%$+ $@$>6$1<@$2> user%host R$-:$+ $@$>6$2<@$1> host:user R$-.$+ $@$>6$2<@$1> host.user R$+^$+ $1!$2 convert ^ to ! R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names R$-=$+ $@$>6$2<@$1.BITNET> resolve bitnet names ############################################################ ############################################################ ##### ##### RULESET ZERO PREAMBLE ##### ##### The beginning of ruleset zero is constant through all ##### configurations. ##### ##### @(#)zerobase.m4 1.2 (ULTRIX) 2/8/85 ##### ############################################################ ############################################################ S0 # first make canonical R$*<$*>$* $1$2$3 defocus R$+ $:$>3$1 make canonical # handle special cases..... R@ $#local$:MAILER-DAEMON handle <> form R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec # arrange for local names to be fully qualified R$*<$*$=S>$* $1<$2$3.LOCAL>$4 user@etherhost #R$*<$+.ARPA.LOCAL>$* $1<$2.ARPA>$3 because ARPA is a host # now delete the local info R$*<$*$=w.LOCAL>$* $1<$2>$4 thishost.LOCAL R$*<$*$=w.UUCP>$* $1<$2>$4 thishost.UUCP R$*<$*$=w.ENET>$* $1<$2>$4 thishost.ENET R$*<$*$=w>$* $1<$2>$4 thishost R$*<$*.>$* $1<$2>$3 drop trailing dot R<@>:$* $@$>0$1 retry after route strip R$*<@> $@$>0$1 strip null trash & retry ################################## # End of ruleset zero preamble # ################################## ############################################### ### Machine dependent part of rulset zero ### ############################################### # avoid enet or uucp to local hosts R$*<@$=S.UUCP>$* $1<@$2.LOCAL>$3 uucp => local R$*<@$=S.ENET>$* $1<@$2.LOCAL>$3 enet => local # if we do not have enet, send to forwarder R$+<@$+.ENET>$* $:$?E$2::$1<@$E.LOCAL>$3$|$1<@$2.ENET>$3$. # forward uucp we don't know to primary forwarder R$*<@$~Z.UUCP>$* $2!$1<@$Z.LOCAL>$3 # forward around hosts with communication problems R$*<@$=F.LOCAL>$* $2!$1<@$F.LOCAL>$3 reroute message R$+!$+<@$=w.LOCAL>$* $2<@$1.UUCP>$4 if we are forwarder # resolve names we can handle locally # first handle local network traffic double check that we know the host R$*<@$~S.LOCAL>$* $#error$:Host $2 not connected to $w via tcp R$*<@$->$* $#error$:Host $2 not connected to $w via tcp R$*<@$*$-.LOCAL>$* $#tcp$@$3$:$1<@$2$3.LOCAL>$4 user@tcphost.LOCAL # handle uucp traffic. double check that we know the host R$*<@$~Z.UUCP>$* $#error$:Host $2 not connected to $w via uucp R<@$+.UUCP>:$+ $1!$2 to old format R$+<@$+.UUCP> $2!$1 to old format R$-!$+ $#uucp$@$1$:$2 host!user # handle enet stuff R$+<@$+.ENET> $#Dmail$@$2$:$1 enet user # at this point, we are trying a local name. if we don't # recognize it, forward to name forwarder host R$~N $1<@$N.LOCAL> not local, redirect R$*<@$=w.LOCAL>$* $1 but wait, there's more! # we are forwarder, hope # it's an alias! R$*<@$*$-.LOCAL>$* $#tcp$@$3$:$1<@$2$3.LOCAL>$4 let name forwarder do it # everything else must be a local name R$+ $#local$:$1 local names ############################################################ ############################################################ ##### ##### Local and Program Mailer specification ##### ##### @(#)localm.m4 1.2 (ULTRIX) 2/8/85 ##### ############################################################ ############################################################ Mlocal, P=/bin/mail, F=rlsDFmn, S=10, R=20, A=mail -d $u Mprog, P=/bin/sh, F=lsDFRe, S=10, R=20, A=sh -c $u S10 R@ MAILER-DAEMON errors to mailer-daemon ############################################################ ############################################################ ##### ##### Mail-11 Mailer ##### ##### @(#)xm.m4 1.1 (ULTRIX) 2/8/85 ##### ############################################################ ############################################################ MDmail, P=/usr/bin/mail11, F=mnsF, S=17, R=18, A=mail11 $f $x $h $u S17 R$+<@$-.LOCAL> $2::$1 convert to enet style R$=S::$+ $2 strip local names R$+ $:$U::$1 add our name on S18 R$+<@$-.LOCAL> $2::$1 convert to enet style R$=S::$+ $2 strip local names ############################################################ ############################################################ ##### ##### Arpanet TCP Mailer specification ##### ##### @(#)tcpm.m4 4.1 7/25/83 ##### ############################################################ ############################################################ Mtcp, P=[IPC], F=msDFMueXL, S=14, R=14, A=IPC $h, E=\r\n S14 # pass <route-addr>'s through R<@$+>$* $@<@$1>$2 resolve <route-addr> # map colons to dots everywhere..... #R$*:$* $1.$2 map colons to dots # handle the simple case.... R$+<@$-.LOCAL> $@$1<@$2.LOCAL> user@host.LOCAL # fully qualify computer center names so the rest works nicely #R$+<@$+.CC> $1<@$2.CC.LOCAL> user@host.CC # output local hosts in user%host@host syntax R$+<@LOCAL> $@$1<@$A> local names R$+<@$+.LOCAL> $@$1%$2<@$A> local hosts R$+<@$*$=S> $@$1%$2$3<@$A> R$+<@$*$=Z> $@$1%$2$3<@$A> # handle other external cases R$+<@$-> $@$1<@$2> simple names #R$+<@$+.$-.ARPA> $@$1%$2<@$3.ARPA> approximate something R$+<@[$+]> $@$1<@[$2]> already ok # convert remaining addresses to old format and externalize appropriately R$+ $:$>5$1 => old format #R$-:$+ $@$1.$2<@$A> convert berk hosts R$+<@$+> $@$1%$2<@$A> pessmize R$+ $:$1%$w<@$A> tack on our hostname R$+%$=R<@$=A> $1<@$3> strip unneeded relay ############################################################ ############################################################ ##### ##### UUCP Mailer specification ##### ##### @(#)uucpm.m4 1.2 (ULTRIX) 2/8/85 ##### ############################################################ ############################################################ ############################################################ ############################################################ ##### ##### Provide Backward Compatibility ##### ##### @(#)compat.m4 1.2 (ULTRIX) 2/8/85 ##### ############################################################ ############################################################ ##################################################### # General code to convert back to old style names # ##################################################### S5 R$+<@$-.LOCAL> $2!$1 u@h.LOCAL => u #R$+<@$-.CC> $2:$1 u@h.CC => h:u R$+<@$=Z> $@$2!$1 u@bhost => h:u #R$+<@$=C> $@$2:$1 u@cchost => h:u R$+<@$-.UUCP> $2!$1 u@host.UUCP => host!u R$+<@$-.ENET> $2::$1 u@host.ENET => host::u #R$+@$+.ARPA $1@$2 u@host.ARPA => u@host Muucp, P=/usr/bin/uux, F=sDFhuU, S=13, R=23, M=100000, A=uux - -r $h!rmail ($u) S13 R$+ $:$>5$1 convert to old style R$=S!$+ $2 strip local name #R$*<@$=S>$* $1<@$2.Berkeley.ARPA>$3 resolve abbreviations #R$*<@$=Z>$* $1<@$2.Berkeley.ARPA>$3 resolve abbreviations #R$*<@$->$* $1<@$2.ARPA>$3 resolve abbreviations R$+ $:$U!$1 stick on our host name R$=w!$=R!$+ $:$1!$3 node!node:xxx S23 R$+ $:$>5$1 convert to old style #R$*<@$=S>$* $1<@$2.Berkeley.ARPA>$3 resolve abbreviations #R$*<@$=Z>$* $1<@$2.Berkeley.ARPA>$3 resolve abbreviations #R$*<@$->$* $1<@$2.ARPA>$3 resolve abbreviations