|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.