Commit | Line | Data |
---|---|---|
15637ed4 RG |
1 | # Copyright (c) 1983 Eric P. Allman |
2 | # Copyright (c) 1988 The Regents of the University of California. | |
3 | # All rights reserved. | |
4 | # | |
5 | # Redistribution and use in source and binary forms, with or without | |
6 | # modification, are permitted provided that the following conditions | |
7 | # are met: | |
8 | # 1. Redistributions of source code must retain the above copyright | |
9 | # notice, this list of conditions and the following disclaimer. | |
10 | # 2. Redistributions in binary form must reproduce the above copyright | |
11 | # notice, this list of conditions and the following disclaimer in the | |
12 | # documentation and/or other materials provided with the distribution. | |
13 | # 3. All advertising materials mentioning features or use of this software | |
14 | # must display the following acknowledgement: | |
15 | # This product includes software developed by the University of | |
16 | # California, Berkeley and its contributors. | |
17 | # 4. Neither the name of the University nor the names of its contributors | |
18 | # may be used to endorse or promote products derived from this software | |
19 | # without specific prior written permission. | |
20 | # | |
21 | # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |
22 | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
23 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
24 | # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
25 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
26 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
27 | # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
28 | # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
29 | # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
30 | # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
31 | # SUCH DAMAGE. | |
32 | # | |
33 | # @(#)sendmail.cf 5.2 (Berkeley) 4/23/91 | |
34 | # | |
35 | ||
36 | # built by root on Mon Aug 21 13:47:04 PDT 1989 | |
37 | # in /usr/src/local/nettables/sendmail.cf/cf on monet.Berkeley.EDU | |
38 | # | |
39 | ############################################################ | |
40 | ############################################################ | |
41 | ##### | |
42 | ##### SENDMAIL CONFIGURATION FILE | |
43 | ##### | |
44 | ############################################################ | |
45 | ############################################################ | |
46 | ||
47 | ||
48 | ################## | |
49 | # local info # | |
50 | ################## | |
51 | ||
52 | # file containing our internet aliases | |
53 | Fw/etc/sendmail.cw | |
54 | ||
55 | # uucp hostnames | |
56 | DUokeeffe | |
57 | CUokeeffe | |
58 | ||
59 | # local UUCP connections | |
60 | CV blia | |
61 | CV ccicpg | |
62 | CV mjk | |
63 | CV oxford | |
64 | CV zulu | |
65 | ||
66 | ||
67 | ############################# | |
68 | ### Setup Information ### | |
69 | ############################# | |
70 | ||
71 | ||
72 | ###################### | |
73 | # General Macros # | |
74 | ###################### | |
75 | ||
76 | # local domain name | |
77 | DDBerkeley.EDU | |
78 | ||
79 | # Internet relay host -- machines in our domain that are not | |
80 | # registered with the NIC will be "hidden" behind this relay machine | |
81 | # with the % kludge, although SMTP delivery will still be performed | |
82 | # by the sending machine. Someday this will go away. | |
83 | DAucbvax.Berkeley.EDU | |
84 | ||
85 | # UUCP relay host | |
86 | DRucbvax.Berkeley.EDU | |
87 | ||
88 | # csnet relay host | |
89 | DCrelay.cs.net | |
90 | ||
91 | # bitnet relay host | |
92 | DBjade.Berkeley.EDU | |
93 | ||
94 | # my official hostname | |
95 | Dj$w | |
96 | ||
97 | ||
98 | ||
99 | ############### | |
100 | # Classes # | |
101 | ############### | |
102 | ||
103 | # Internal ("fake") domains that we use in rewriting | |
104 | CIUUCP BITNET CSNET | |
105 | ||
106 | ||
107 | ||
108 | ############################################################ | |
109 | ############################################################ | |
110 | ##### | |
111 | ##### BERKELEY HOSTS REGISTERED WITH THE NIC | |
112 | ##### | |
113 | ############################################################ | |
114 | ############################################################ | |
115 | ||
116 | ||
117 | CNbach ucbbach | |
118 | CNbizet ucbbizet | |
119 | CNcad ucbcad | |
120 | CNdegas ucbdegas | |
121 | CNeast ucbeast | |
122 | CNernie ucbernie | |
123 | CNesvax ucbesvax | |
124 | CNjade ucbjade | |
125 | CNji ucbji | |
126 | CNmike ucbmike | |
127 | CNmonet ucbmonet | |
128 | CNpostgres | |
129 | CNrenoir ucbrenoir | |
130 | CNucbarpa | |
131 | CNucbvax | |
132 | CNviolet ucbviolet | |
133 | ||
134 | ||
135 | ###################### | |
136 | # Version Number # | |
137 | ###################### | |
138 | ||
139 | DZ1.37 | |
140 | ||
141 | ||
142 | ###################### | |
143 | # Special macros # | |
144 | ###################### | |
145 | ||
146 | # my name | |
147 | DnMAILER-DAEMON | |
148 | # UNIX header format | |
149 | DlFrom $g $d | |
150 | # delimiter (operator) characters | |
151 | Do.:%@!^=/[] | |
152 | # format of a total name | |
153 | Dq$g$?x ($x)$. | |
154 | # SMTP login message | |
155 | De$j Sendmail $v/$Z ready at $b | |
156 | ||
157 | ############### | |
158 | # Options # | |
159 | ############### | |
160 | ||
161 | # location of alias file | |
162 | OA/etc/aliases | |
163 | # wait up to ten minutes for alias file rebuild | |
164 | Oa10 | |
165 | # substitution for space (blank) characters | |
166 | OB. | |
167 | # (don't) connect to "expensive" mailers | |
168 | #Oc | |
169 | # default delivery mode (deliver in background) | |
170 | Odbackground | |
171 | # temporary file mode | |
172 | OF0600 | |
173 | # default GID | |
174 | Og1 | |
175 | # location of help file | |
176 | OH/usr/share/misc/sendmail.hf | |
177 | # log level | |
178 | OL9 | |
179 | # default network name | |
180 | ONARPA | |
181 | # default messages to old style | |
182 | Oo | |
183 | # queue directory | |
184 | OQ/var/spool/mqueue | |
185 | # read timeout -- violates protocols | |
186 | Or2h | |
187 | # status file | |
188 | OS/var/log/sendmail.st | |
189 | # queue up everything before starting transmission | |
190 | Os | |
191 | # default timeout interval | |
192 | OT3d | |
193 | # time zone names (V6 only) | |
194 | OtPST,PDT | |
195 | # default UID | |
196 | Ou1 | |
197 | # wizard's password | |
198 | OW* | |
199 | # load average at which we just queue messages | |
200 | Ox8 | |
201 | # load average at which we refuse connections | |
202 | OX12 | |
203 | ||
204 | ########################### | |
205 | # Message precedences # | |
206 | ########################### | |
207 | ||
208 | Pfirst-class=0 | |
209 | Pspecial-delivery=100 | |
210 | Pbulk=-60 | |
211 | Pjunk=-100 | |
212 | ||
213 | ##################### | |
214 | # Trusted users # | |
215 | ##################### | |
216 | ||
217 | Troot | |
218 | Tdaemon | |
219 | Tuucp | |
220 | ||
221 | ######################### | |
222 | # Format of headers # | |
223 | ######################### | |
224 | ||
225 | H?P?Return-Path: <$g> | |
226 | HReceived: $?sfrom $s $.by $j ($v/$Z) | |
227 | id $i; $b | |
228 | H?D?Resent-Date: $a | |
229 | H?D?Date: $a | |
230 | H?F?Resent-From: $q | |
231 | H?F?From: $q | |
232 | H?x?Full-Name: $x | |
233 | HSubject: | |
234 | # HPosted-Date: $a | |
235 | # H?l?Received-Date: $b | |
236 | H?M?Resent-Message-Id: <$t.$i@$j> | |
237 | H?M?Message-Id: <$t.$i@$j> | |
238 | ||
239 | ||
240 | ||
241 | ########################### | |
242 | ### Rewriting Rules ### | |
243 | ########################### | |
244 | ||
245 | ||
246 | ################################ | |
247 | # Sender Field Pre-rewriting # | |
248 | ################################ | |
249 | S1 | |
250 | #R$*<$*>$* $1$2$3 defocus | |
251 | ||
252 | ################################### | |
253 | # Recipient Field Pre-rewriting # | |
254 | ################################### | |
255 | S2 | |
256 | #R$*<$*>$* $1$2$3 defocus | |
257 | ||
258 | ||
259 | ||
260 | ################################# | |
261 | # Final Output Post-rewriting # | |
262 | ################################# | |
263 | S4 | |
264 | ||
265 | R@ $@ handle <> error addr | |
266 | ||
267 | # resolve numeric addresses to name if possible | |
268 | R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 lookup numeric internet addr | |
269 | ||
270 | # externalize local domain info | |
271 | R$*<$+>$* $1$2$3 defocus | |
272 | R@$+:@$+:$+ @$1,@$2:$3 <route-addr> canonical | |
273 | ||
274 | # UUCP must always be presented in old form | |
275 | R$+@$-.UUCP $2!$1 u@h.UUCP => h!u | |
276 | ||
277 | # delete duplicate local names | |
278 | R$+%$=w@$=w $1@$w u%host@host => u@host | |
279 | R$+%$=w@$=w.$D $1@$w u%host@host => u@host | |
280 | ||
281 | ||
282 | ########################### | |
283 | # Name Canonicalization # | |
284 | ########################### | |
285 | S3 | |
286 | ||
287 | # handle "from:<>" special case | |
288 | R$*<>$* $@@ turn into magic token | |
289 | ||
290 | # basic textual canonicalization -- note RFC733 heuristic here | |
291 | R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting | |
292 | R$*<$*<$+>$*>$* $3 2-level <> nesting | |
293 | R$*<$+>$* $2 basic RFC821/822 parsing | |
294 | ||
295 | # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later | |
296 | R@$+,$+ @$1:$2 change all "," to ":" | |
297 | ||
298 | # localize and dispose of route-based addresses | |
299 | R@$+:$+ $@$>6<@$1>:$2 handle <route-addr> | |
300 | ||
301 | # more miscellaneous cleanup | |
302 | R$+ $:$>8$1 host dependent cleanup | |
303 | R$+:$*;@$+ $@$1:$2;@$3 list syntax | |
304 | R$+:$*; $@$1:$2; list syntax | |
305 | R$+@$+ $:$1<@$2> focus on domain | |
306 | R$+<$+@$+> $1$2<@$3> move gaze right | |
307 | R$+<@$+> $@$>6$1<@$2> already canonical | |
308 | ||
309 | # convert old-style addresses to a domain-based address | |
310 | R$+^$+ $1!$2 convert ^ to ! | |
311 | R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names | |
312 | R$+.$-!$+ $@$>6$3<@$1.$2> domain uucps | |
313 | R$+!$+ $@$>6$2<@$1.UUCP> uucp subdomains | |
314 | R$+%$+ $:$>9$1%$2 user%host | |
315 | R$+<@$+> $@$>6$1<@$2> already canonical | |
316 | R$-.$+ $@$>6$2<@$1> host.user | |
317 | ||
318 | ||
319 | ################################# | |
320 | # special local conversions # | |
321 | ################################# | |
322 | ||
323 | S6 | |
324 | R$*<@$=w>$* $:$1<@$w>$3 get into u@$w form | |
325 | R$*<@$=w.$D>$* $:$1<@$w>$3 | |
326 | R$*<@$=U.UUCP>$* $:$1<@$w>$3 | |
327 | ||
328 | ||
329 | ################################ | |
330 | # Change rightmost % to @. # | |
331 | ################################ | |
332 | ||
333 | S9 | |
334 | R$*%$* $1@$2 First make them all @'s. | |
335 | R$*@$*@$* $1%$2@$3 Undo all but the last. | |
336 | R$*@$* $@$1<@$2> Put back the brackets. | |
337 | ||
338 | ||
339 | ||
340 | ################### | |
341 | ### Mailers ### | |
342 | ################### | |
343 | ||
344 | ||
345 | ############################################################ | |
346 | ############################################################ | |
347 | ##### | |
348 | ##### Local and Program Mailer specification | |
349 | ##### | |
350 | ############################################################ | |
351 | ############################################################ | |
352 | ||
353 | Mlocal, P=/usr/libexec/delivermail, F=lsDFMmn, S=10, R=20, A=mail -r $g -d $u | |
354 | Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u | |
355 | ||
356 | S10 | |
357 | R@ $n errors to mailer-daemon | |
358 | ||
359 | ||
360 | ############################################################ | |
361 | ############################################################ | |
362 | ##### | |
363 | ##### Local Domain SMTP Mailer specification | |
364 | ##### | |
365 | ##### Messages processed by this specification are assumed to remain | |
366 | ##### the local domain. Hence, they can refer to hosts that are | |
367 | ##### not registered in the NIC host table. | |
368 | ##### | |
369 | ############################################################ | |
370 | ############################################################ | |
371 | ||
372 | Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n | |
373 | ||
374 | S17 | |
375 | ||
376 | # cleanup forwarding a bit | |
377 | R$*<$*>$* $1$2$3 defocus | |
378 | R$* $:$>3$1 canonicalize | |
379 | R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain | |
380 | ||
381 | # pass <route-addr>'s through | |
382 | R<@$+>$* $@<@$[$1$]>$2 resolve <route-addr> | |
383 | ||
384 | # map colons to dots everywhere | |
385 | R$*:$* $1.$2 map colons to dots | |
386 | ||
387 | ||
388 | ||
389 | # output local host as user@host.domain | |
390 | R$- $@$1<@$w> user w/o host | |
391 | R$+<@$w> $@$1<@$w> this host | |
392 | R$+<@$=w> $@$1<@$w> or an alias | |
393 | R$+<@$-> $:$1<@$[$2$]> ask nameserver | |
394 | R$+<@$w> $@$1<@$w> this host | |
395 | R$+<@$-> $@$1<@$2.$D> if nameserver fails | |
396 | ||
397 | # if not local, and not a "fake" domain, ask the nameserver | |
398 | R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain | |
399 | R$+<@[$+]> $@$1<@[$2]> already ok | |
400 | ||
401 | # output fake domains as user%fake@relay | |
402 | ||
403 | R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.bitnet | |
404 | R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET | |
405 | R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP | |
406 | ||
407 | ||
408 | S27 | |
409 | ||
410 | # cleanup | |
411 | R$*<$*>$* $1$2$3 defocus | |
412 | R$* $:$>3$1 now canonical form | |
413 | R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain | |
414 | ||
415 | # pass <route-addr>'s through | |
416 | R<@$+>$* $@<@$[$1$]>$2 resolve <route-addr> | |
417 | ||
418 | # map colons to dots everywhere | |
419 | R$*:$* $1.$2 map colons to dots | |
420 | ||
421 | # output local host as user@host.domain | |
422 | R$- $@$1<@$w> user w/o host | |
423 | R$+<@$w> $@$1<@$w> this host | |
424 | R$+<@$=w> $@$1<@$w> or an alias | |
425 | R$+<@$-> $:$1<@$[$2$]> ask nameserver | |
426 | R$+<@$w> $@$1<@$w> this host | |
427 | R$+<@$-> $@$1<@$2.$D> if nameserver fails | |
428 | ||
429 | # if not local, and not a "fake" domain, ask the nameserver | |
430 | R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain | |
431 | R$+<@[$+]> $@$1<@[$2]> already ok | |
432 | ||
433 | # output fake domains as user%fake@relay | |
434 | ||
435 | R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET | |
436 | R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET | |
437 | R$+<@$+.UUCP> $@$2!$1 user@host.UUCP | |
438 | ||
439 | ||
440 | ||
441 | ############################################################ | |
442 | ############################################################ | |
443 | ##### | |
444 | ##### Internet SMTP Mailer specification | |
445 | ##### | |
446 | ##### Messages processed by this specification are assumed to leave | |
447 | ##### the local domain -- hence, they must be canonical according to | |
448 | ##### RFC822 etc. This means that machines not registered with | |
449 | ##### the NIC must be hidden behind our Internet relay. | |
450 | ##### | |
451 | ############################################################ | |
452 | ############################################################ | |
453 | ||
454 | Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n | |
455 | ||
456 | S14 | |
457 | ||
458 | # pass <route-addr>'s through | |
459 | R<@$+>$* $@<@$[$1$]>$2 resolve <route-addr> | |
460 | ||
461 | # map colons to dots everywhere | |
462 | R$*:$* $1.$2 map colons to dots | |
463 | ||
464 | # output local host in user@host.domain syntax | |
465 | R$- $1<@$w> user w/o host | |
466 | R$+<@$=w> $:$1<@$w> this host | |
467 | R$+<@$-> $:$1<@$[$2$]> canonicalize into dom | |
468 | R$+<@$-> $:$1<@$2.$D> if nameserver fails | |
469 | R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok | |
470 | R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway | |
471 | ||
472 | # if not local, and not a "fake" domain, ask the nameserver | |
473 | R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain | |
474 | R$+<@[$+]> $@$1<@[$2]> already ok | |
475 | ||
476 | # output internal ("fake") domains as "user%host@relay" | |
477 | ||
478 | R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET | |
479 | R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET | |
480 | R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP | |
481 | ||
482 | ||
483 | S24 | |
484 | ||
485 | # put in <> kludge | |
486 | R$*<$*>$* $1$2$3 defocus | |
487 | R$* $:$>3$1 now canonical form | |
488 | ||
489 | # pass <route-addr>'s through | |
490 | R<@$+>$* $@<@$[$1$]>$2 resolve <route-addr> | |
491 | ||
492 | # map colons to dots everywhere..... | |
493 | R$*:$* $1.$2 map colons to dots | |
494 | ||
495 | # output local host in user@host.domain syntax | |
496 | R$- $1<@$w> user w/o host | |
497 | R$+<@$=w> $:$1<@$w> this host | |
498 | R$+<@$-> $:$1<@$[$2$]> canonicalize into dom | |
499 | R$+<@$-> $:$1<@$2.$D> if nameserver fails | |
500 | R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok | |
501 | R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway | |
502 | ||
503 | # if not local, and not a "fake" domain, ask the nameserver | |
504 | R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain | |
505 | R$+<@[$+]> $@$1<@[$2]> already ok | |
506 | ||
507 | # Hide fake domains behind relays | |
508 | ||
509 | R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET | |
510 | R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET | |
511 | R$+<@$+.UUCP> $@$2!$1 user@host.UUCP | |
512 | ||
513 | ||
514 | ||
515 | ############################################################ | |
516 | ############################################################ | |
517 | ##### | |
518 | ##### UUCP Mailer specification | |
519 | ##### | |
520 | ############################################################ | |
521 | ############################################################ | |
522 | ||
523 | ||
524 | Muucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000, | |
525 | A=uux - -r -z -a$f -gC $h!rmail ($u) | |
526 | ||
527 | S13 | |
528 | R$+ $:$>5$1 convert to old style | |
529 | R$*<@$=w>$* $1<@$w>$2 resolve abbreviations | |
530 | R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations | |
531 | R$+<@$+> $2!$1 uucpize (no @'s in addr) | |
532 | R$w!$+ $1 strip local name | |
533 | R$+ $:$U!$1 stick on our host name | |
534 | R$=U!$-%$- $:$1!$2@$3.$D ucbvax!user@host.domain | |
535 | ||
536 | S23 | |
537 | R$+ $:$>5$1 convert to old style | |
538 | R$*<@$=w>$* $1<@$w>$2 resolve abbreviations | |
539 | R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations | |
540 | R$+<@$w> $U!$1 a!b@here -> here!a!b | |
541 | R$=U!$+ $2 here!a!b -> a!b | |
542 | # sanity ... should not happen. | |
543 | R$=U.$D!$+ $2 strip local name.domain | |
544 | ||
545 | ||
546 | ############################################################ | |
547 | ############################################################ | |
548 | ##### | |
549 | ##### Provide Backward Compatibility | |
550 | ##### | |
551 | ############################################################ | |
552 | ############################################################ | |
553 | ||
554 | ##################################################### | |
555 | # General code to convert back to old style names # | |
556 | ##################################################### | |
557 | S5 | |
558 | ||
559 | R$+<@$w> $1 strip host | |
560 | R$+<@$-.UUCP> $2!$1 u@host.UUCP => host!u | |
561 | ||
562 | ||
563 | ||
564 | ##################### | |
565 | ### Rule Zero ### | |
566 | ##################### | |
567 | ||
568 | ||
569 | ############################################################ | |
570 | ############################################################ | |
571 | ##### | |
572 | ##### RULESET ZERO PREAMBLE | |
573 | ##### | |
574 | ##### The beginning of ruleset zero is constant through all | |
575 | ##### configurations. | |
576 | ##### | |
577 | ############################################################ | |
578 | ############################################################ | |
579 | ||
580 | S0 | |
581 | ||
582 | # first make canonical | |
583 | R$*<$*>$* $1$2$3 defocus | |
584 | R$+ $:$>3$1 make canonical | |
585 | ||
586 | # handle special cases | |
587 | R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 numeric internet addr | |
588 | R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec | |
589 | R$+ $:$>6$1 | |
590 | R$-<@$w> $#local$:$1 | |
591 | R@ $#error$:Invalid address handle <> form | |
592 | ||
593 | # canonicalize using the nameserver if not internal domain | |
594 | R$*<@$*.$~I>$* $:$1<@$[$2.$3$]>$4 | |
595 | R$*<@$->$* $:$1<@$[$2$]>$3 | |
596 | R$*<@$->$* $:$1<@$2.$D>$3 if nameserver fails | |
597 | ||
598 | # now delete the local info | |
599 | R<@$w>:$* $@$>0$1 @here:... -> ... | |
600 | R$*<@$w> $@$>0$1 ...@here -> ... | |
601 | ||
602 | ################################## | |
603 | # End of ruleset zero preamble # | |
604 | ################################## | |
605 | ||
606 | ||
607 | ############################################### | |
608 | ### Machine dependent part of Rule Zero ### | |
609 | ############################################### | |
610 | ||
611 | ||
612 | ||
613 | # resolve local UUCP connections | |
614 | R<@$=V.UUCP>:$+ $#uucp$@$1$:$2 @host.UUCP:... | |
615 | R$+<@$=V.UUCP> $#uucp$@$2$:$1 user@host.UUCP | |
616 | ||
617 | ||
618 | ||
619 | ||
620 | # resolve fake top level domains by forwarding to other hosts | |
621 | R$*<@$+.BITNET>$* $#tcp$@$B$:$1<@$2.BITNET>$3 user@host.BITNET | |
622 | R$*<@$+.CSNET>$* $#tcp$@$C$:$1<@$2.CSNET>$3 user@host.CSNET | |
623 | ||
624 | ||
625 | # forward non-local UUCP traffic to our UUCP relay | |
626 | R$*<@$*.UUCP>$* $#tcpld$@$R$:$1<@$2.UUCP> uucp mail | |
627 | ||
628 | # resolve SMTP traffic | |
629 | R$*<@$*.$D>$* $#tcpld$@$2.$D$:$1<@$2.$D>$3 user@host.ourdomain | |
630 | R$*<@$+>$* $#tcp$@$2$:$1<@$2>$3 user@host.ourdomain | |
631 | ||
632 | # remaining names must be local | |
633 | R$+ $#local$:$1 everything else | |
634 |