###############################################################################
### ###
### sendmail configuration for generic complex host ###
### with both UUCP and Internet connections ###
### ###
### Erik E. Fair <
[email protected]> ###
### ###
###############################################################################
# Our local domain ($D is added to $w [hostname] for official name in base.m4)
DDARPA
# All the names we are known by (put all the names & nick names on the next
# line, separated by spaces. If you need another line, begin it with "Cw")
Cw
# Our UUCP name
DU$w
# the list of UUCP hosts that we speak to (same rules as Cw, use the
# output of the "uuname" command; also, when you add or delete a host
# from the L.sys, don't forget to add or delete it here)
CU
###############################################################################
### baseline definitions that sendmail needs to operate ###
###############################################################################
##########################
### Special macros ###
##########################
DV25
# my official hostname
Dj$w.$D
# my name (the name on mailer bounces)
DnMAILER-DAEMON
# UNIX header format
DlFrom $g $d
# delimiter (operator) characters
Do.:%@!^/[]
# format of a total name
Dq$?x$x <$g>$|$g$.
# SMTP login message
De$j Sendmail $v/$V ready at $b
###################
### Options ###
###################
# we have full sendmail support here
Oa
# 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
# Send to me too (even if I'm in an alias expansion)
Om
# default messages to old style
Oo
# queue directory
OQ/usr/spool/mqueue
# read timeout -- violates protocols (timeout an SMTP idle for 2 hours)
Or2h
# status file
OS/usr/lib/sendmail.st
# queue up everything before starting transmission
Os
# default timeout interval (returns undelivered mail after 3 days)
OT3d
# time zone names (V6 only)
OtPST,PDT
# default UID
Ou1
# encrypted wizard's password (for the undocumented "wiz" SMTP command)
OWnot-likely
# rebuild the aliasfile automagically
#OD
# maximum load average before queueing mail
Ox10
# maximum load average before rejecting connections
OX15
###############################
### Message precedences ###
###############################
Pfirst-class=0
Pspecial-delivery=100
Pbulk=-60
Pjunk=-100
#########################
### Trusted users ###
#########################
Troot
Tdaemon
Tnews
Tuucp
#############################
### Format of headers ###
#############################
H?P?Return-Path: <$g>
HReceived: $?sfrom $s$. by $j$?r with $r$. ($v/$V-eef)
id $i; $b
H?D?Date: $a
H?F?From: $q
H?x?Full-Name: $x
H?M?Message-Id: <$t.$i@$j>
HSubject:
H?D?Resent-Date: $a
H?F?Resent-From: $q
H?M?Resent-Message-Id: <$t.$i@$j>
###############################################################################
# RULESET ZERO PREAMBLE #
###############################################################################
S0
# first make canonical
R$*<$*>$* $1$2$3 defocus
R$+ $:$>3$1 make canonical
# handle special cases.....
R@ $#local$:$n handle <> form
R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec
# now delete the local info
R$*<$*$=w.UUCP>$* $1<$2>$4 thishost
R$*<$*$=w.$D>$* $1<$2>$4 thishost
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
# return uucp mail that looks like decvax!ittvax!marsvax! since it
# will be rejected at the final site with no username on it
R$*!<@$-.UUCP> $#error$:Destination address truncated
###############################################################################
### Machine dependent part of ruleset zero (where we decide what to do) ###
###############################################################################
# resolve UUCP links to hosts known to this machine
R$*<@$=U.UUCP>$* $#uucp$@$2$:$1 resolve local uucp
# special case violation of RFC822 for hybrid bang/at addresses
# if uucphost!user@arpahost, forward to uucphost if we speak to it.
R$=U!$+<@$+>$* $#uucp$@$1$:$2@$3$4
# resolve various and sundry other unofficial networks
R$*<@$+.MAILNET>$* $#
[email protected]$:$1@$2.MAILNET$3 MAILNET
R$*<@$+.BITNET>$* $#
[email protected]$:$1@$2.BITNET$3 BITNET
R$*<@$+.MFENET>$* $#
[email protected]$:$1@$2.MFENET$3 MFENET
R$*<@$+.CSNET>$* $#
[email protected]$:$1@$2.CSNET$3 CSNET
# when all else fails, look up the whole name in the host table
R$*<@$+>$* $#tcp$@$2$:$1@$2$3 user@domain
# remaining names must be local
R@ $n fix magic token
R$+ $#local$:$1 everything else
###############################################################################
### End of ruleset zero ###
###############################################################################
###########################
# Name Canonicalization #
###########################
S3
# handle "from:<>" special case
R<> $@@ resolve into magic token
# basic textual canonicalization
R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting
R$*<$*<$+>$*>$* $3 2-level <> nesting
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$+:$*;@$+ $@$1:$2;@$3 list syntax
R$+@$+ $:$1<@$2> focus on domain
R$+<$+@$+> $1$2<@$3> move gaze right
R$+<@$+> $@$>6$1<@$2> already canonical
# convert old-style addresses to a domain-based address
R$+^$+ $1!$2 convert ^ to !
R$+!$+ $@$>9$1!$2 uucp name hackery
R$+%$+ $:$>5$1%$2 user%host%host
R$+<@$+> $@$>6$1<@$2> canonical
# Given multiple %'s change rightmost % to @.
S5
R$*<$*>$* $1$2$3 defocus
R$*%$* $1@$2 First make them all @'s.
R$*@$*@$* $1%$2@$3 Undo all but the last.
R$*@$* $@$1<@$2> Put back the brackets.
###############################################################################
#### Assorted name hackery to make things simple for people ####
###############################################################################
# here we look for addresses of the form: user%host.domain@gateway
# and strip off the gateway name (for the ones that we know)
S6
# conventional percent format
R$+%$+.MAILNET<@mit-multics.arpa> $>5$1<%$2.MAILNET> strip
R$+%$+.MFENET<@nmfecc.arpa> $>5$1<%$2.MFENET> strip
R$+%$+.BITNET<@cunyvm.cuny.edu> $>5$1<%$2.BITNET> strip
R$+%$+.CSNET<@relay.cs.net> $>5$1<%$2.CSNET> strip
# regulation route-addr format
R<@mit-multics.arpa>:$+@$+.MAILNET $1<@$2.MAILNET> strip
R<@nmfecc.arpa>:$+@$+.MFENET $1<@$2.MFENET> strip
R<@cunyvm.cuny.edu>:$+@$+.BITNET $1<@$2.BITNET> strip
R<@relay.cs.net>:$+@$+.CSNET $1<@$2.CSNET> strip
# mung up names for the outside world - called from tcp mailer
S7
R$+@$+.MAILNET $1%
[email protected] [email protected]
R$+@$+.MFENET $1%
[email protected] [email protected]
R$+@$+.BITNET $1%
[email protected] [email protected]
R$+@$+.CSNET $1%
[email protected] [email protected]
###############################################################################
#### UUCP address hackery ####
###############################################################################
S9
R$+!$=w!$+ $3 collapse loops
R$-.$+!$+ $@$>6$3<@$1.$2> do.main!user
R$-!$+ $@$>6$2<@$1.UUCP> host!user
################################
# Sender Field Pre-rewriting #
################################
S1
R$*<$*>$* $1$2$3 defocus
###################################
# Recipient Field Pre-rewriting #
###################################
S2
R$*<$*>$* $1$2$3 defocus
###################################
# Final Output Post-rewriting #
# Standard Domain-based version #
###################################
S4
R@ $n handle <> error addr
# externalize local domain info
R@$+:$+:$+ $@@$1,$2:$3 <route-addr> canonical
# UUCP must always be presented in old form
R$+@$-.UUCP $2!$1
[email protected] => h!u
###############################################################################
### Local, and Program Mailer specifications ###
###############################################################################
# Nota Bene: what mailer flags you use depends upon what version of /bin/mail
# you have:
#
# 4th Berkeley Software Distribution (4.1 BSD or later)
Mlocal, P=/bin/mail, F=SlsDFMPpmnxr, S=10, R=20, A=mail -d $u
#
# USG UNIX (System III, System V, Xenix 3.0 or later)
# Mlocal, P=/bin/mail, F=SlsDFMPpmnx, S=10, R=20, A=mail $u
#
# Also, if you are using System V, you should get the Berkeley version of
# /bin/mail as soon as you can and junk the one you've got: it doesn't
# believe in sendmail, so the wrong thing will happen when someone types
# mail user@host (i.e. it will attempt local delivery, rather than call
# sendmail)
Mprog, P=/bin/sh, F=lsDFMpxehu, S=10, R=20, A=sh -c $u
S10
S20
###############################################################################
#### IP/TCP/SMTP mailer (going out to internet land) ####
###############################################################################
Mtcp, P=[IPC], F=AmnDFMpueXLC, S=14, R=14, A=IPC $h, E=\r\n
S14
R$*@[$+]$* $@$1@[$2]$3 already ok (inet addr spec)
R@$+@$+ $@@$1@$2 already ok (route-addr)
R$+@$=X.UUCP $2!$1@$X fix remote UUCP
R$+@$=Y.UUCP $2!$1@$Y fix remote UUCP
R$+@$=Z.UUCP $2!$1@$Z fix remote UUCP
R$+@$-.UUCP $2!$1@$j undo local UUCP hack
R$+@$+ $@$>7$1@$2 fix up names for the internet
R$+ $@$1@$j add our official host name
###############################################################################
#### UUCP mailer (bangland) ####
###############################################################################
# if none of your UUCP neighbors are 4.1 BSD sites, add an "m" after "F="
# this will cause multiple recipients on the same remote host to be done
# in the same uux command (i.e. one letter sent for "n" recipients)
#
# if you want uucico to be invoked immediately after a letter is queued
# (i.e. initiate the phone call immediately) remove the "-r" flag in the
# uux command line.
Muucp, P=/usr/bin/uux, F=sDFMxhuU, S=13, R=23, M=100000,
A=uux - -r $h!rmail ($u)
S13
R$+@$-.UUCP $2!$1
[email protected] => host!u
R$=w!$+ $2 zap dups
R@$+@$+ $@$U!@$1@$2 ugh, route-addrs
# unfortunately, I have to resolve route-addrs before this rule, because
# it is so general that it matches them too, with disastrous results. - EEF
R$+@$-.$+ $2.$3!$1 uucpize address
R$+ $:$U!$1 stick on our host name
S23
# nothing here because bangland mailers are supposed to rewrite these headers
# relative to the sender by themselves anyway.
Downloaded From P-80 International Information Systems 304-744-2253