Could be routing problem?
Mark Neidorff
mark at neidorff.com
Sun Mar 21 15:17:05 UTC 2004
Steve,
Having had a night's sleep and a clear look at what you wrote, I (think)
that I understand what you are getting at. I just don't understand why my
system behaves the way it does. I've eliminated the things that you
suggested. I removed the virtusertable entries. There is nothing going
outside of the system in aliases. When I run #sendmail -bt -d0,1 <
/dev/null I get corresponding output to yours....
Version 8.11.6
Compiled with: LDAPMAP MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7
NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS QUEUE SASL SCANF
SMTP TCPWRAPPERS USERDB
============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = neidorff
(canonical domain name) $j = neidorff.com
(subdomain name) $m = com
(node name) $k = neidorff.com
========================================================
When I run
#sendmail -bt
3,0 mark at neidorff.com
it parses the same way that yours does.
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> canonify input: mark @ neidorff . com
Canonify2 input: mark < @ neidorff . com >
Canonify2 returns: mark < @ neidorff . com . >
canonify returns: mark < @ neidorff . com . >
parse input: mark < @ neidorff . com . >
Parse0 input: mark < @ neidorff . com . >
Parse0 returns: mark < @ neidorff . com . >
ParseLocal input: mark < @ neidorff . com . >
ParseLocal returns: mark < @ neidorff . com . >
Parse1 input: mark < @ neidorff . com . >
Parse1 returns: $# local $: mark
parse returns: $# local $: mark
>
Still, I ***SEE*** the activity on my router sending the message out and
it coming back in again multiple times for each e-mail. I can't find
anything causing that.
I have no idea how to interpret this, but each line in /var/log/maillog
shows each received e-mail relay=root at localhost . Is that supposed to be
there?
Thanks for any help you can offer...
Mark
On Sat, 20 Mar 2004, Cowles, Steve wrote:
> Mark Neidorff wrote:
> > Hi all,
> >
> > I have a feeling that this is something dead easy, I'm just
> > not seeing the problem.
> >
> > My Redhat 7.3 system is the machine that I use as a mail
> > server (yes, I have a static IP)and as my workstation. I'm
> > running sendmail as my mailserver. My domain is registered.
> > I do not have a dns server running on my system.
> >
> > There are two symptoms to my problem. First, whenever an
> > e-mail arrives, it hops around in my computer. My mail log
> > fills with "too many hops 26 (25 max)" errors and each of
> > these hops is written in the header of the e-mail that is
> > received.
> > The headers say:
> > Received: (from root at localhost)
> > by mark.neidorff.com (8.11.6/8.11.6) id <e-mail ID is here>
> > for mark; <date and time are here>
> > and is repeated about 25 times.
>
> The "to many hops" error typically means a sendmail configuration problem.
> Most likely, sendmail does not understand what domains are considered local.
> i.e. when to select the local vs. esmtp mailers
>
> 1) First check to see how sendmail views your systems resolver lib configs.
>
> Type: sendmail -bt -d0.1 </dev/null
>
> ============ SYSTEM IDENTITY (after readcf) ============
> (short domain name) $w = voyager
> (canonical domain name) $j = mail.mydomain.com
> (subdomain name) $m = mydomain.com
> (node name) $k = voyager
> ========================================================
>
> Note: In my printout above, my systems FQDN is voyager.mydomain.com. Yet, I
> override this (canonical) in my sendmail.mc file to be mail.mydomain.com
> which matches the MX record for my domain. This comes in handy for outbound
> mail with certain remote MTA's that check the validity of the HELO
> handshake.
>
> 2) Now check which mailer is selected by sendmail for your e-mail addresses
> (ruleset 0). In your case, the "local" mailer should be selected. If not,
> then you may have found your endless loop (barring any aliases or virtuals).
> NOTE: After typing sendmail -bt you would enter what is shown at the >
> prompt. Substitute for your domain.
>
> # sendmail -bt
> ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
> Enter <ruleset> <address>
> > 3,0 scowles at mydomain.com
> canonify input: scowles @ mydomain . com
> Canonify2 input: scowles < @ mydomain . com >
> Canonify2 returns: scowles < @ mydomain . com . >
> canonify returns: scowles < @ mydomain . com . >
> parse input: scowles < @ mydomain . com . >
> Parse0 input: scowles < @ mydomain . com . >
> Parse0 returns: scowles < @ mydomain . com . >
> ParseLocal input: scowles < @ mydomain . com . >
> ParseLocal returns: scowles < @ mydomain . com . >
> Parse1 input: scowles < @ mydomain . com . >
> Parse1 returns: $# local $: scowles
> parse returns: $# local $: scowles
>
> Note: In the above, I am invoking ruleset 3, then rulset 0. Ruleset 3 puts
> each address into a form that simplfies tasks for other rulsets. In this
> case, ruleset 0, which selects the mailer.
>
> The last line output above contains the mailer (local) and the mailbox in
> this case.
>
> As a frame of reference, I have removed "mydomain.com" from
> /etc/mail/local-hosts-names. Notice that sendmail now selects the esmtp
> mailer.
>
> # sendmail -bt
> ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
> Enter <ruleset> <address>
> > 3,0 scowles at mydomain.com
> canonify input: scowles @ mydomain . com
> Canonify2 input: scowles < @ mydomain . com >
> Canonify2 returns: scowles < @ mydomain . com . >
> canonify returns: scowles < @ mydomain . com . >
> parse input: scowles < @ mydomain . com . >
> Parse0 input: scowles < @ mydomain . com . >
> Parse0 returns: scowles < @ mydomain . com . >
> ParseLocal input: scowles < @ mydomain . com . >
> ParseLocal returns: scowles < @ mydomain . com . >
> Parse1 input: scowles < @ mydomain . com . >
> Mailertable input: < mydomain . com > scowles < @ mydomain . com . >
> Mailertable input: mydomain . < com > scowles < @ mydomain . com . >
> Mailertable returns: scowles < @ mydomain . com . >
> Mailertable returns: scowles < @ mydomain . com . >
> MailerToTriple input: < > scowles < @ mydomain . com . >
> MailerToTriple returns: scowles < @ mydomain . com . >
> Parse1 returns: $# esmtp $@ mydomain . com . $: scowles < @
> mydomain . com . >
> parse returns: $# esmtp $@ mydomain . com . $: scowles < @
> mydomain . com . >
>
> BTW: Are you using any virtual addresses? How about your aliases file? Could
> be that the local mailer is being selected, but then an alias kicks in to
> forward to another system.
>
> Long pause...
> I'm sure the above looks complicated. Sorry! Sendmail is not the easist of
> MTA's to configure. :-) But understanding which mailer is selected is
> critical in undestanding how to resolve the to many hops errors.
>
> Think of this problem like this...
>
> 1) inbound e-mail arrives (either remotely or locally submitted).
>
> 2) Based on its configuration, sendmail selects whether or not the recipient
> e-mail address is local or remote (the mailer).
>
> 3) if the remote mailer is selected (esmtp), sendmail forwards the inbound
> e-mail to another MTA (using an MX record or a mailertable override)
>
> 4) The remote MTA receives this forwarded e-mail and checks its
> configuration for whether or not the recipient e-mail address is local or
> remote.
>
> 5) The remote MTA does not select the local mailer and determines it needs
> to forward this e-mail back to your MTA. (using an MX record or a
> mailertable override)
>
> ...and the loop continues.
>
> Steve Cowles
>
>
>
--
With her marriage she got a new name and a dress.
More information about the redhat-list
mailing list