Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!cs.utexas.edu!asuvax!anasaz!rusty From: rusty@anasaz.UUCP (Rusty Carruth) Newsgroups: comp.mail.sendmail Subject: HELP! (sorry, I'm really stuck!) Message-ID: <4131@anasaz.UUCP> Date: 6 May 91 23:32:30 GMT Reply-To: rusty@anasaz.UUCP (Rusty Carruth) Distribution: usa Organization: Anasazi, Inc. Lines: 777 Argh! Being a carbon-based life-form, I'm having an interesting problem with a sendmail.cf file on InterActive unix... :-) First, the setup: Machine 1: 386 running AT&T Unix System V R.3 (wins). name - att386 Machine 2: 386 running Interactive Unix 3.2.2 (I think)name - chad Machine 3: 386 running InterActive Unix 3.2 name - clyde Machine 1 has the sendmail.cf file titled "looper" (which I've appended to the end of this message, wish this was not such a time-critical problem! - I apologize for including it, but this is supposed to be fixed by Wed or Thurs!) When that sendmail.cf file is run on Machines 1 and 2, (note - only the system name is changed from one system to the other(ok, maybe we changed the "who i talk to" as well))... ANyway, when it runs on "att386" or "chad" "everythign works fine" (as they say). However, when I attempt to run it on "clyde", local mail gets into a forever loop, with mail calling sendmail calling mail calling ...... SO, I tried using the "original" sendmail.cf file (name "original", below) and modifying it to talk to "anasaz" (the point of this whole exercise, I might add). All well and good, except that if I send mail to anasaz!rusty, I get a bounce message saying "No ! in UUCP!" - AND the mail is delivered just fine to anasaz!rusty !!! If I send the mail to clyde!anasaz!rusty, the mail arrives fine at anasaz!rusty, AND I do NOT get a bounce! (All mail attempts done using mailx, elm tends to change things too much) SO, do I just tell the person using this machine to accept situation 1 (no local mail), or 2 (bounces from working remote mail), or does somene have a better solution? :-) Oh, one more thing - when I run sendmail -bt and say 0 anasaz!rusty I get it resolved to "uux anasaz rusty" When I say 0 clyde!anasaz!rusty I get "smail clyde anasaz!rusty" And, if I do a uuto anasaz!rusty, I get no bounces! (i.e. the uuto worked just fine) I think maybe I'll take up basketweaving :-) Ok, here is the "original" sendmail.cf (end marked with "original"): ############################################################ # # SENDMAIL CONFIGURATION FILE # # supports internet style addressing # over UUCP and ethernet links. # # This configuration file is based on the smail configuration # file from the UUCP project. It's intended purpose is to be # a default, simple minded configuration file for those sites # that have not yet set up smail, and it's cohorts. # #ident @(#)default.cf 2.2 - 88/12/20 # ############################################################ ############################################################ # # Local configuration options - HINTS # # Host name and domain name macros. # # Dw sets $w # DD sets $D # CD sets $=D # # This configuration file uses the uname default, unless otherwise modified. # $D and $=D list all domains in which this host sits. # $D goes into outbound addresses, i.e. "user@$w.$D". # it will will be turned into $D. # HOSTNAME needs to be modified for each site (if there is no ethernet). Dwclyde DDUUCP CDLOCAL local uucp # Preemptive ether connections. We prefer these connections # over both designated transport mechanisms and the general depository. # You can add more classes (here and in S0). # /etc/hosts.smtp The list of hosts sites using smtp (tcp/ip-ethernet) # FE/etc/hosts.smtp %s # /usr/lib/uucp/Systems The list of hosts sites connected directly via uucp # FU/usr/lib/uucp/Systems %s # Mock top-level domain names. These name designate a transport mechanism # and appear internally only, set in S3, used in S0, and removed in S4 and # (possibly) the ruleset for the particular mailer. CTETHER UUX # Relay host. Used at the end of S0 as the general depository for # addresses which didn't resolve locally. # R is used as the ethernet relay host, S DRanasaz # # End Local configuration options # ############################################################ ############################################################ # # General configuration information # ############################################################ DVsmail2.2/06-30-87 ########################## # Special macros # ########################## # official hostname Dj$w.$D # my name DnMAILER-DAEMON # UNIX header format DlFrom $g $d # delimiter (operator) characters Do.:%@!^=/[] # format of a total name Dq$g$?x ($x)$. # SMTP login message De$j Sendmail $v/$V ready at $b ################### # Options # ################### # 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 OF0644 # default GID Og1 # location of help file OH/usr/lib/sendmail.hf # log level OL9 # default messages to old style Oo # queue directory OQ/usr/spool/mqueue # read timeout -- violates protocols Or2h # status file OS/usr/lib/sendmail.st # queue up everything before starting transmission Os # default timeout interval OT3d # time zone names (V6 only) OtPST,PDT # default UID Ou1 # wizard's password OWvoidpasswords ############################### # Message precedences # ############################### Pfirst-class=0 Pspecial-delivery=100 Pjunk=-100 ######################### # Trusted users # ######################### Troot Tdaemon Tuucp Tnetwork ############################# # Format of headers # ############################# #H?P?Return-Path: <$g> H?R?Received: $?sfrom $s $.by $j ($v/$V) id $i; $b H?D?Resent-Date: $a H?D?Date: $a H?F?Resent-From: $q H?F?From: $q H?x?Full-Name: $x HSubject: # HPosted-Date: $a # H?l?Received-Date: $b H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.$i@$j> ############################################################ # # REWRITING RULES # ########################### # # # Name Canonicalization # # # ########################### S3 # basic textual canonicalization R<> $@@ turn into magic token R$*<$+>$* $2 basic RFC821/822 parsing R$+ at $+ $1@$2 "at" -> "@" for RFC 822 R$*<$*>$* $1$2$3 in case recursive # handle route-addr <@a,@b,@c:user@d> R@$+,$+ @$1:$2 change all "," to ":" R@$+:$+ $@<@$1>:$2 handle R$+:$*;@$+ $@$1:$2;@$3 list syntax # Rewrite address into a domain-based address. Any special mock domain names # (like UUX) should be defined on the CT line and removed (if necessary) # in S4. You can use them in S0 for designated transport mechanisms. # Delimiters with precedence over @. Add yours here. # The @ delimiter. Leave this alone. R$+@$+ $:$1<@$2> focus on domain R$+<$+@$+> $1$2<@$3> move gaze right R$+<@$+> $@$1<@$2> already canonical # Delimiters with precedence below @. Add yours here. R$+^$+ $1!$2 convert ^ to ! R$-!$+ $@$2<@$1.UUX> resolve uucp names R$+.!$+ $@$2<@$1> domain.!host R$+!$+ $@$2<@$1> domain!host # % is a low precedence @. R$*%$* $@$>3$1@$2 %->@ and retry ############################################################ # # RULESET ZERO PREAMBLE # ############################################################ S0 # first make canonical R$*<$*>$* $1$2$3 defocus R$+ $:$>3$1 make canonical # handle special cases..... R@ $#local$:MAILER-DAEMON handle <> form R$*<@[$+]>$* $#ether$@[$2]$:$1@[$2]$3 numeric internet spec # strip local stuff R$*<@$-.$w.$D>$* $1<@$2>$3 thishost.mydom R$*<@$-.$D>$* $1<@$2>$3 mydom R$*<@$-.$w.$=D>$* $1<@$2>$4 thishost.anydom R$*<@$-.$w.$=T>$* $1<@$2>$4 thishost.mockdom R$*<$*$w>$* $1<$2>$3 thishost R$*<$*.>$* $1<$2>$3 drop trailing dot R<@>:$+ $@$>0$1 strip null route, retry R$+<@> $@$>0$1 strip null addr, retry ############################################### # Machine dependent part of ruleset zero # ############################################### # Preemption: for a host on a known link turn the domain spec into a # mock domain indicating the link. One set of these rules for each of # the F classes listed in the local configuration options. R$*<$*$=E.$D>$* $:$1<$2$3.ETHER>$4 etherhost.mydomain R$*<$*$=E.$=D>$* $:$1<$2$3.ETHER>$5 etherhost.anydomain R$*<$*$=E.$=T>$* $:$1<$2$3.ETHER>$5 etherhost.mock-domain R$*<$*$=E>$* $:$1<$2$3.ETHER>$4 etherhost R$*<$*$=U.$D>$* $:$1<$2$3.UUX>$4 uucphost.mydomain R$*<$*$=U.$=D>$* $:$1<$2$3.UUX>$5 uucphost.anydomain R$*<$*$=U.$=T>$* $:$1<$2$3.UUX>$5 uucphost.mock-domain R$*<$*$=U>$* $:$1<$2$3.UUX>$4 uucphost # Designated delivery: use the indicated transport mechanism. One of # these rules for each of the mock domains defined in $=T. You can # remove these if you just want general disposition. HINTS. # Designated delivery: R$*<@$=U.UUX>$* $#uux$@$2$:$1$3 known uucphost R$*<@$=U$+.UUX>$* $#uux$@$2$:$1@$2$4 known uucphost R$*<@$=E$+.ETHER>$* $#ether$@$2$:$1@$2$4 known etherhost R$*<@$+.ETHER>$* $#ether$@$2$:$1@$2$3 etherhost # throw out mock domain name now R$*<$*.$=T>$* $1<$2>$4 # General disposition of remote mail (comment out all but one). You # might add to this list, if you have other "smarter" mailers. HINTS. R$*<@$->:$+ $#smail$@$2$:$1$3 forward to $2 R$*<@$*>$* $#smail$@$2$:$1$3 hand to uucp #R$*<@$*>$* $#smail$@$R$:$1@$2$3 hand to uucp relay #R$*<@$*>$* $#ether$@$R$:$1@$2$3 hand to ether relay #R$*<$*>$* $#error$:unknown address $1$2$3 don't hand anywhere # local delivery R$- $#local$:$1 user ############################################################ # # Local and Program Mailer specification # ############################################################ Mlocal, P=/bin/lmail, F=lsDFMhumS, S=10, R=20, A=lmail -s $u Mremote, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u S10 #R@ MAILER-DAEMON errors to mailer-daemon #R$+<@$+.$j>$* $1<@$j>$3 hide anydom.$j under $j S20 ############################################################ # # UUCP Mailer specification # ############################################################ Muux, P=/usr/bin/uux, F=sDFMuU, S=13, R=23, M=100000, A=uux - $h!rmail ($u) S13 S23 Msmail, P=/bin/smail, F=sDFMhumR, S=14, R=24, M=100000, A=smail -vH$j $h!$u S14 R$+<@$=E> $1 user@etherhost -> user R$*<@$+>$* $@$1<@$2>$3 already ok #R$+<@$+.$j>$* $1<@$j>$3 hide anydom.$j under $j R$+ $@$1<@$j> add our full address S24 ############################################################ # # SMTP ethernet mailer # ############################################################ Mether, P=[IPC], F=msDFMuCXP, S=11, R=21, A=IPC $h S11 R$*<@$+>$* $@$1<@$2>$3 already ok R$+ $@$1<@$w> add our hostname S21 ################################# # Final Output Post-rewriting # ################################# # This rewrites the internal $=T mock domains into their external form. # The default is to replace the mock domain name with $D. # The last two lines are stock. S4 R@ $@ handle <> error addr R$+<@$-.UUX> $2!$1 u@host.UUX => host!u R$*<$*$=T>$* $:$1<$2$D>$4 change local info R$*<$+>$* $1$2$3 defocus R@$+:$+:$+ $@@$1,$2:$3 canonical --------end of "original" sendmail.cf-------- And, now, the "looping" sendmail.cf: # SCCS_ID - "@(#)sendmail.cf (TWG) 1.1 89/02/01 " ############################################################################### ### ### ### sendmail configuration for generic complex host ### ### with both UUCP and Internet connections ### ### ### ### Erik E. Fair ### ### ### ############################################################################### # Our local domain ($D is added to $w [hostname] for official name in base.m4) DDUUCP # 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") Cwclyde # 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 anasaz tower CU qip ############################################################################### ### baseline definitions that sendmail needs to operate ### ############################################################################### ########################## ### Special macros ### ########################## DV25 # my official hostname Dj$w # 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 1/2 hour) Or30m # 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 R$*<@$=U>$* $#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>$* $#tcp$@mit-multics.arpa$:$1@$2.MAILNET$3 MAILNET R$*<@$+.BITNET>$* $#tcp$@wiscvm.wisc.edu$:$1@$2.BITNET$3 BITNET R$*<@$+.MFENET>$* $#tcp$@nmfecc.arpa$:$1@$2.MFENET$3 MFENET R$*<@$+.CSNET>$* $#tcp$@relay.cs.net$:$1@$2.CSNET$3 CSNET # Well it isn't a "known" host lets try to find it R$*<@$+.UUCP>$* $1<@$2>$3 Just drop the .UUCP # Look for host name using named #R$*<@$+>$* $:$1<@$[$2$]>$3 ask named to resolve # 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 # 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<@wiscvm.wisc.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<@wiscvm.wisc.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%$2.MAILNET@mit-multics.arpa user@host.MAILNET R$+@$+.MFENET $1%$2.MFENET@nmfecc.arpa user@host.MFENET R$+@$+.BITNET $1%$2.BITNET@wiscvm.wisc.edu user@host.BITNET R$+@$+.CSNET $1%$2.CSNET@relay.cs.net user@host.CSNET ############################################################################### #### 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 canonical # UUCP must always be presented in old form R$+@$-.UUCP $2!$1 u@h.UUCP => 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=SlsDFMPpmx, 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=AmhnDFMpueXLC, 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=msDFMxhuU, S=13, R=23, M=100000, A=uux - $h!rmail ($u) S13 R$+@$-.UUCP $2!$1 u@host.UUCP => 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.