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

1.1       root        1: ############################################################
                      2: #
                      3: #      SENDMAIL CONFIGURATION FILE
                      4: #
                      5: #      supports internet style addressing
                      6: #      over UUCP and ethernet links.
                      7: #
                      8: #      A product of the UUCP Project.
                      9: #
                     10: #      @(#)template.cf 2.5 (smail) 9/15/87
                     11: #
                     12: ############################################################
                     13: 
                     14: 
                     15: ############################################################
                     16: #
                     17: #  Local configuration options - HINTS
                     18: #
                     19: # Host name and domain name macros.
                     20: #
                     21: #      Dw sets $w
                     22: #      DD sets $D
                     23: #      CD sets $=D
                     24: #
                     25: # $D and $=D list all domains in which this host sits.
                     26: # $D goes into outbound addresses, i.e. "user@$w.$D".
                     27: # $A is another domain for which this host is 'authoritative'
                     28: # it will will be turned into $D.
                     29: 
                     30: CF_HOST
                     31: CF_DOMAIN
                     32: CF_AUTHORITY
                     33: CF_DCLASS
                     34: 
                     35: # Preemptive ether connections.  We prefer these connections 
                     36: # over both designated transport mechanisms and the general depository.
                     37: # You can add more classes (here and in S0).
                     38: 
                     39: # /etc/hosts.smtp might be a link to /etc/hosts
                     40: #
                     41: CF_SMTP
                     42: 
                     43: # Mock top-level domain names.  These name designate a transport mechanism
                     44: # and appear internally only, set in S3, used in S0, and removed in S4 and
                     45: # (possibly) the ruleset for the particular mailer.  
                     46: 
                     47: CTETHER UUX
                     48: 
                     49: # Relay host.  Used at the end of S0 as the general depository for 
                     50: # addresses which didn't resolve locally.  
                     51: 
                     52: DRrelay
                     53: 
                     54: #
                     55: #  End Local configuration options
                     56: #
                     57: ############################################################
                     58: 
                     59: ############################################################
                     60: #
                     61: #      General configuration information
                     62: #
                     63: ############################################################
                     64: 
                     65: DVsmail2.5/CF_DATE
                     66: 
                     67: ##########################
                     68: #     Special macros     #
                     69: ##########################
                     70: 
                     71: # official hostname
                     72: Dj$w.$D
                     73: # my name
                     74: DnMAILER-DAEMON
                     75: # UNIX header format
                     76: DlFrom $g  $d
                     77: # delimiter (operator) characters
                     78: Do.:%@!^=/[]
                     79: # format of a total name
                     80: Dq$g$?x ($x)$.
                     81: # SMTP login message
                     82: De$j Sendmail $v/$V ready at $b
                     83: 
                     84: 
                     85: ###################
                     86: #     Options     #
                     87: ###################
                     88: 
                     89: # location of alias file
                     90: OA/usr/lib/aliases
                     91: # default delivery mode (deliver in background)
                     92: Odbackground
                     93: # (don't) connect to "expensive" mailers
                     94: #Oc
                     95: # temporary file mode
                     96: OF0644
                     97: # default GID
                     98: Og1
                     99: # location of help file
                    100: OH/usr/lib/sendmail.hf
                    101: # log level
                    102: OL9
                    103: # default messages to old style
                    104: Oo
                    105: # queue directory
                    106: OQ/usr/spool/mqueue
                    107: # read timeout -- violates protocols
                    108: Or2h
                    109: # status file
                    110: OS/usr/lib/sendmail.st
                    111: # queue up everything before starting transmission
                    112: Os
                    113: # default timeout interval
                    114: OT3d
                    115: # time zone names (V6 only)
                    116: OtPST,PDT
                    117: # default UID
                    118: Ou1
                    119: # wizard's password
                    120: OWvoidpasswords
                    121: 
                    122: ###############################
                    123: #     Message precedences     #
                    124: ###############################
                    125: 
                    126: Pfirst-class=0
                    127: Pspecial-delivery=100
                    128: Pjunk=-100
                    129: 
                    130: #########################
                    131: #     Trusted users     #
                    132: #########################
                    133: 
                    134: Troot
                    135: Tdaemon
                    136: Tuucp
                    137: Tnetwork
                    138: 
                    139: #############################
                    140: #     Format of headers     #
                    141: #############################
                    142: 
                    143: #H?P?Return-Path: <$g>
                    144: HReceived: $?sfrom $s 
                    145:        $.by $j ($v/$V)
                    146:        id $i; $b
                    147: H?D?Resent-Date: $a
                    148: H?D?Date: $a
                    149: H?F?Resent-From: $q
                    150: H?F?From: $q
                    151: H?x?Full-Name: $x
                    152: HSubject:
                    153: # HPosted-Date: $a
                    154: # H?l?Received-Date: $b
                    155: H?M?Resent-Message-Id: <$t.$i@$j>
                    156: H?M?Message-Id: <$t.$i@$j>
                    157: 
                    158: ############################################################
                    159: #
                    160: #              REWRITING RULES
                    161: #
                    162: 
                    163: 
                    164: ###########################
                    165: #                        #
                    166: #  Name Canonicalization  #
                    167: #                        #
                    168: ###########################
                    169: S3
                    170: 
                    171: # basic textual canonicalization
                    172: R<>                    $@@                             turn into magic token
                    173: R$*<$+>$*              $2                              basic RFC821/822 parsing
                    174: R$+ at $+              $1@$2                           "at" -> "@" for RFC 822
                    175: R$*<$*>$*              $1$2$3                          in case recursive
                    176: 
                    177: # handle route-addr <@a,@b,@c:user@d> 
                    178: R@$+,$+                        @$1:$2                          change all "," to ":"
                    179: R@$+:$+                        $@<@$1>:$2                      handle <route-addr>
                    180: R$+:$*;@$+             $@$1:$2;@$3                     list syntax
                    181: 
                    182: # Rewrite address into a domain-based address.  Any special mock domain names 
                    183: # (like UUX) should be defined on the CT line and removed (if necessary) 
                    184: # in S4.  You can use them in S0 for designated transport mechanisms.
                    185: 
                    186: # Delimiters with precedence over @.  Add yours here.
                    187: 
                    188: # The @ delimiter.  Leave this alone.
                    189: R$+@$+                 $:$1<@$2>                       focus on domain
                    190: R$+<$+@$+>             $1$2<@$3>                       move gaze right
                    191: R$+<@$+>               $@$1<@$2>                       already canonical
                    192: 
                    193: # Delimiters with precedence below @.  Add yours here.
                    194: R$+^$+                 $1!$2                           convert ^ to !
                    195: R$-!$+                 $@$2<@$1.UUX>                   resolve uucp names
                    196: R$+.!$+                        $@$2<@$1>                       domain.!host
                    197: R$+!$+                 $@$2<@$1>                       domain!host
                    198: 
                    199: # % is a low precedence @.
                    200: R$*%$*                 $@$>3$1@$2                      %->@ and retry
                    201: 
                    202: ############################################################
                    203: #
                    204: #              RULESET ZERO PREAMBLE
                    205: #
                    206: ############################################################
                    207: 
                    208: S0
                    209: 
                    210: # first make canonical
                    211: R$*<$*>$*              $1$2$3                          defocus
                    212: R$+                    $:$>3$1                         make canonical
                    213: 
                    214: # handle special cases.....
                    215: R@                     $#local$:MAILER-DAEMON          handle <> form
                    216: R$*<@[$+]>$*           $#ether$@[$2]$:$1@[$2]$3        numeric internet spec
                    217: 
                    218: # strip local stuff
                    219: R$*<@$-.$w.$D>$*       $1<@$2>$3                       thishost.mydom
                    220: CF_GATEWAYR$*<@$-.$D>$*        $1<@$2>$3                       mydom
                    221: R$*<@$-.$w.$=D>$*      $1<@$2>$4                       thishost.anydom
                    222: R$*<@$-.$w.$A>$*       $1<@$2>$3                       thishost.anotherdom
                    223: R$*<@$-.$A>$*          $1<@$2>$3                       anotherdom
                    224: R$*<@$-.$w.$=T>$*      $1<@$2>$4                       thishost.mockdom
                    225: CF_GATEWAYR$*<$*$w>$*  $1<$2>$3                        thishost
                    226: R$*<$*.>$*             $1<$2>$3                        drop trailing dot
                    227: R<@>:$+                        $@$>0$1                         strip null route, retry
                    228: R$+<@>                 $@$>0$1                         strip null addr, retry
                    229: 
                    230: 
                    231: ###############################################
                    232: #    Machine dependent part of ruleset zero   #
                    233: ###############################################
                    234: 
                    235: # Preemption: for a host on a known link turn the domain spec into a
                    236: # mock domain indicating the link.  One set of these rules for each of 
                    237: # the F classes listed in the local configuration options.
                    238: 
                    239: R$*<$*$=E.$D>$*                        $:$1<$2$3.ETHER>$4      etherhost.mydomain
                    240: R$*<$*$=E.$=D>$*               $:$1<$2$3.ETHER>$5      etherhost.anydomain
                    241: R$*<$*$=E.$A>$*                        $:$1<$2$3.ETHER>$4      etherhost.anotherdomain
                    242: R$*<$*$=E.$=T>$*               $:$1<$2$3.ETHER>$5      etherhost.mock-domain
                    243: R$*<$*$=E>$*                   $:$1<$2$3.ETHER>$4      etherhost
                    244: 
                    245: # Designated delivery: use the indicated transport mechanism.  One of
                    246: # these rules for each of the mock domains defined in $=T.  You can
                    247: # remove these if you just want general disposition.  HINTS.
                    248: 
                    249: # Designated delivery:
                    250: R$*<@$=U.UUX>$*                $#uux$@$2$:$1$3                 known uucphost
                    251: R$*<@$=E$+.ETHER>$*    $#ether$@$2$:$1@$2$4            known etherhost
                    252: R$*<@$+.ETHER>$*       $#ether$@$2$:$1@$2$3            etherhost
                    253: 
                    254: # throw out mock domain name now
                    255: R$*<$*.$=T>$*          $1<$2>$4
                    256: 
                    257: # General disposition of remote mail (comment out all but one).  You
                    258: # might add to this list, if you have other "smarter" mailers.  HINTS.
                    259: 
                    260: R$*<@$->:$+            $#uux$@$2$:$1$3                 forward to $2
                    261: R$*<@$*>$*             $#uux$@$2$:$1$3                 hand to uucp
                    262: #R$*<@$*>$*            $#uux$@$R$:$1@$2$3              hand to uucp relay
                    263: #R$*<@$*>$*            $#ether$@$R$:$1@$2$3            hand to ether relay
                    264: #R$*<$*>$*             $#error$:unknown address $1$2$3 don't hand anywhere
                    265: 
                    266: # local delivery
                    267: R$+                    $#local$:$1                     user
                    268: 
                    269: ############################################################
                    270: #
                    271: #              Local and Program Mailer specification
                    272: #
                    273: ############################################################
                    274: 
                    275: CF_SVMAILMlocal, P=CF_LOCALMAIL, F=lsDFMhumSU, S=10, R=20, A=rmail $u
                    276: CF_BSMAILMlocal, P=CF_LOCALMAIL, F=rlsDFMmn, S=10, R=20, A=mail -d $u
                    277: Mprog, P=/bin/sh,   F=lsDFMe,   S=10, R=20, A=sh -c $u
                    278: 
                    279: S10
                    280: R@                     MAILER-DAEMON   errors to mailer-daemon
                    281: CF_HIDDENHOSTSR$+<@$+.$j>$*            $1<@$j>$3       hide anydom.$j under $j
                    282: 
                    283: S20
                    284: 
                    285: ############################################################
                    286: #
                    287: #              UUCP Mailer specification
                    288: #
                    289: ############################################################
                    290: 
                    291: Muux,  P=/bin/smail, F=sDFMhum, S=14, R=24, M=100000,
                    292:        A=smail -vH$j $h!$u
                    293: 
                    294: S14
                    295: R$+<@$=E>              $1                      user@etherhost -> user
                    296: R$*<@$+>$*             $@$1<@$2>$3             already ok
                    297: CF_HIDDENHOSTSR$+<@$+.$j>$*            $1<@$j>$3               hide anydom.$j under $j
                    298: R$+                    $@$1<@$j>               add our full address
                    299: 
                    300: S24
                    301: 
                    302: ############################################################
                    303: #
                    304: #              SMTP ethernet mailer
                    305: #
                    306: ############################################################
                    307: 
                    308: Mether,        P=[IPC], F=msDFMuCXP, S=11, R=21, A=IPC $h
                    309: 
                    310: S11
                    311: R$*<@$+>$*             $@$1<@$2>$3             already ok
                    312: R$+                    $@$1<@$w>               add our hostname
                    313: 
                    314: S21
                    315: 
                    316: #################################
                    317: #  Final Output Post-rewriting  #
                    318: #################################
                    319: 
                    320: # This rewrites the internal $=T mock domains into their external form.
                    321: # The default is to replace the mock domain name with $D.
                    322: # The last two lines are stock.
                    323: 
                    324: S4
                    325: R@                     $@                              handle <> error addr
                    326: R$+<@$-.UUX>           $2!$1                           [email protected] => host!u
                    327: R$*<$*$=T>$*           $:$1<$2$D>$4                    change local info
                    328: R$*<$+>$*              $1$2$3                          defocus
                    329: R@$+:$+:$+             @$1,$2:$3                       <route-addr> canonical

unix.superglobalmegacorp.com

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