1 # Mostly rfc1123 compliant sendmail.cf
3 # Mail sendmail-admins-request@itd.umich.edu to join
4 # sendmail-admins@itd.umich.edu. sendmail-admins carries information
5 # regarding this sendmail.cf, including announcements of changes
6 # and discussions of interest to admins.
12 DUdestroyer.rs.itd.umich.edu
15 De$j sendmail ($v/$V) ready at $b
20 Dq$?x\"$x\" <$g>$|$g$.
24 OH/usr/lib/sendmail.hf
25 OS/usr/lib/sendmail.st
41 HReceived: $?sfrom $s $.by $j ($v/$V)
42 $?rwith $r $.id $i; $b
45 H?M?Resent-Message-Id: <$t.$i@$j>
46 H?M?Message-Id: <$t.$i@$j>
59 # ruleset 3 and friends
60 # focus addresses, don't screw with them
61 # ruleset 0 and friends
62 # beat the hell out of addresses, convert them to
63 # their deliverable form
64 # mailers and associated rulesets
65 # * focused addresses are body addresses, and should be
67 # * unfocused addresses are envelope addresses, and should
68 # be converted to the mailers format
70 # remove focus on all addresses
72 # All addresses are passed through this rule. It functions by finding
73 # the host to delivery to, and marking it with <>
75 R$*<$+>$* $2 remove comments
76 R$+:$*; $@ $1:$2; done if list
77 R$*@$+ $: $>5$1@$2 focus rfc822 addresses
78 R$+!$+ $: $>6$1!$2 focus uucp
79 R$*<@$+>$* $: $1<@$[$2$]>$3 canonicalize
80 R$*<$+>$* $@ $1<$2>$3 done if focused
81 R$+%$+ $: $1@$2 a%b -> a@b
82 R$+@$+%$+ $1%$2@$3 a@b%c -> a%b@c
83 R$+@$+ $: $>3$1@$2 try again...
85 # Find the "next hop" in normal rfc822 syntax. These rules
86 # all return upon marking the next hop with <>
88 R@$+,@$+:$+ $@ <@$1>,@$2:$3 @a,@b:@c -> <@a>,@b:c
89 R@$+:$+ $@ <@$1>:$2 @a:b -> <@a>:b
90 R$+@$+ $@ $1<@$2> a@b -> a<@b>
92 # Focus bang style addresses. Won't change already focused addresses.
93 # Strips .uucp in bang paths, and converts domain syntax to rfc822 adresses.
95 R$*<$+>$* $@ $1<$2>$3 already focused
96 R$+!$+ $: <$1!>$2 a!b -> <a!>b
97 R<$+.uucp!>$+ <$1!>$2 <a.uucp!>b -> <a!>b
99 # Find a mailer. This involves finding the "real" host to deliver to,
100 # by removing our local name, and/or doing a "domain forward"
102 R$+ $: $>7$1 deliverable format
103 R$*<$+>$* $: $>11$1<$2>$3 domain forward
104 R<$+!>$+ $: $>12<$1!>$2 route uucp
105 R$*<@$+.bitnet>$* $#inet$@$B$:$1<@$2.bitnet>$3
106 R$*<@umich.edu>$* $#mail500$@umich.edu$:<$1>
107 R$*<@itd.umich.edu>$* $#mail500$@itd.umich.edu$:<$1>
108 #R<$+!>$+ $#uux$@$U$:<$1!>$2
109 R<$+!>$+ $#unet$@$U$:<$1!>$2
110 R$*<@$+>$* $#inet$@$2$:$1<@$2>$3
113 # Find the delivery address. Convert to standard-internal form,
116 R<$-.$+!>$+ $3<@$1.$2> <a.b!>c -> c<@a.b>
117 R$*<@$-.uucp>$* $>8$1@$2.uucp$3 *.uucp to !
118 R$*<$+>$* $: $>9$1<$2>$3 strip local name
120 # Convert rfc822 syntax to a uucp "bang path". This works well
121 # on normal a@b address and route-addrs. It will also do something
122 # to list syntax address, but it's not clear how correct it is.
124 R@$+,@$+:$+ @$1!$2:$3 @a,@b:c -> @a!b:c
125 R@$+:$+@$+ $1!$3!$2 @a:b@c -> a!c!b
126 R@$+:$+!$+ $1!$2!$3 @a:b!c -> a!b!c
127 R$+@$+ $2!$1 a@b -> b!c
130 # Remove local names. You won't see things like a.b!u or u@b.uucp.
131 # Add new rules here to accept more than just the default locally.
133 R$*<@$w>$* $>10$1<@>$2 remove local name
135 R<@umich.edu>$*:$* $>10<@>$1:$2
136 R$+%$+<@umich.edu> $>10$1%$2<@>
137 R$+!$+<@umich.edu> $>10$1!$2<@>
139 # Called only from above. Refocus and loop.
145 R$*<$+>$* $: $>7$1<$2>$3
147 # Convert domain names to uucp names, and refocus
149 #R$*<@inquiry.org>$* $: $>8$1@inquiry$2
151 # Route uucp addresses, if we're not connected to them. We rely on the
152 # domain-path operator to down case addresses.
154 R<$+!>$+ $: <${$1$}!>$2 pathalias route
155 R<$+!$+!>$+ <$1!>$2!$3 <a!b!>c -> <a!>b!c
157 Muux, P=/usr/bin/uux, F=DFMhu, S=13, R=14,
158 A=uux - -gC -b -r -a$f $h!rmail ($u)
159 Munet, P=[IPC], F=mDFMhuX, S=13, R=14, A=IPC $h, E=\r\n
160 Minet, P=[IPC], F=mDFMuX, S=15, R=15, A=IPC $h, E=\r\n
161 Mlocal, P=/bin/mail, F=rlsDFMmn, S=16, R=16, A=mail -d $u
162 Mprog, P=/bin/sh, F=lsDFMe, S=16, R=16, A=sh -c $u
163 Mmail500, P=/usr/local/etc/mail500, F=DFMSmnXuh,
164 A=mail500 -f $f -h $h -m $n@$w $u
166 # UUCP mailers require that the sender be in ! format.
167 # XXX Do we add our name to other people's paths?
169 R$*<@$+>$* $: $>8$1@$2$3
177 # Only add our name to local mail. Anything that's focused, leave alone.
179 R$*<$+>$* $@ $1<$2>$3
184 # SMTP mailers require that addresses be in rfc822 format. If there's no
185 # @ in the address, add one.
188 R<$-.$+!>$+ $3<@$1.$2>
189 R$*<@$+>$* $@ $1<@$2>$3
190 R<$+!>$+ $@ $1!$2<@$w>
195 # Local and prog mailer
200 # Called on all outgoing addresses. Used to remove the <> focus
203 R$*<$+>$* $@ $1$2$3 defocus