Delivering to user@domain versus user@host.domain

Don Doumakes doumakes at loganet.net
Wed May 21 20:54:01 EDT 2003


On 2003.05.16 20:47:00 -0500 Ken Murchison wrote:
> My guess is that your MTA is changing the recipient address to 
> contain the fully qualified hostname.  Can you capture what is being 
> sent to lmtpd, or if you know SMTP/LMTP can you talk to lmtpd 
> directly and try to deliver a message?

I ran

	sendmail -d testuser at cannibals.org

and while I'm far from a sendmail debugging expert---barely a passable 
novice---it doesn't appear that the recipient address has been 
rewritten to testuser at donner.cannibals.org.  I'm hoping some other 
glaring error is apparent below.



Version 8.12.5
  Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
		MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET 
NETINET6
		NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS 
TCPWRAPPERS
		USERDB USE_LDAP_INIT
getla(): 0.16
setoption SevenBitInput (7)=False
setoption AliasWait (a)=10
setoption MinFreeBlocks (b)=100
setoption BlankSub (B)=.
setoption HoldExpensive (c)=False
setoption DeliveryMode (d)=i
setoption QueueFileMode (0xbe)=0660
setoption TempFileMode (F)=0600
setoption HelpFile (H)=/etc/mail/helpfile
setoption SendMimeErrors (j)=True
setoption ForwardPath (J)=
setoption ConnectionCacheSize (k)=2
setoption ConnectionCacheTimeout (K)=5m
setoption UseErrorsTo (l)=False
setoption LogLevel (L)=9
setoption CheckAliases (n)=False
setoption OldStyleHeaders (o)=True
setoption DaemonPortOptions (O)=Name=NoMTA, Addr=127.0.0.1, M=E
Daemon NoMTA flags: <NOETRN>
setoption UseMSP (0xcc)=True
setoption PrivacyOptions (p)=goaway,noetrn,restrictqrun
setoption QueueDirectory (Q)=/var/spool/clientmqueue
setoption Timeout (r).queuereturn=5d
setoption Timeout (r).queuewarn=4h
setoption SuperSafe (s)=True
setoption StatusFile (S)=/var/spool/clientmqueue/sm-client.st
setoption TimeZoneSpec (t)=
setoption SmtpGreetingMessage (0x90)=$j Sendmail $v/$Z; $b
setoption UnixFromLine (0x91)=From $g $d
setoption OperatorChars (0x92)=.:%@!^/[]+
setoption RunAsUser (0x9d)=smmsp
setoption DontProbeInterfaces (0xa1)=True
setoption TrustedUser (0xa7)=smmsp
setoption PidFile (0x9f)=/var/run/sm-client.pid
drop_privileges(0): Real[UG]id=0:0, get[ug]id=0:0, gete[ug]id=0:51, 
RunAs[UG]id=51:51
getauthinfo: root at localhost

============ SYSTEM IDENTITY (after readcf) ============
       (short domain name) $w = donner
   (canonical domain name) $j = donner.cannibals.org
          (subdomain name) $m = cannibals.org
               (node name) $k = donner.cannibals.org
========================================================

assign_queueid: assigned id h4M0VPlO001254, e=0x80de260
assign_queueid: assigned id h4M0VPlP001254, e=0x80de260
getla(): 0.16
setsender()

--parseaddr(root)
rewrite: ruleset canonify           input: root
rewrite: ruleset Canonify2          input: root
rewrite: ruleset Canonify2        returns: root
rewrite: ruleset canonify         returns: root
rewrite: ruleset parse              input: root
rewrite: ruleset Parse0             input: root
map_lookup(dequote, root) => NOT FOUND (0)
rewrite: ruleset Parse0           returns: root
rewrite: ruleset Parse1             input: root
rewrite: ruleset Parse1           returns: $# local $: root
rewrite: ruleset parse            returns: $# local $: root
rewrite: ruleset 2                  input: root
rewrite: ruleset 2                returns: root
rewrite: ruleset EnvToL             input: root
rewrite: ruleset EnvToL           returns: root
rewrite: ruleset final              input: root
rewrite: ruleset final            returns: root
parseaddr-->0x80de270=root:
	mailer 3 (local), host `'
	user `root', ruser `<null>'
	state=OK, next=0x0, alias 0x0, uid 0, gid 0
	flags=180<QPINGONFAILURE,QPINGONDELAY>
	owner=(none), home="(none)", fullname="(none)"
	orcpt="(none)", statmta=(none), status=(none)
	finalrcpt="(none)"
	rstatus="(none)"
	statdate=(none)
rewrite: ruleset canonify           input: root
rewrite: ruleset Canonify2          input: root
rewrite: ruleset Canonify2        returns: root
rewrite: ruleset canonify         returns: root
rewrite: ruleset 1                  input: root
rewrite: ruleset 1                returns: root
rewrite: ruleset final              input: root
rewrite: ruleset final            returns: root
sendto: testuser at cannibals.org
    ctladdr=[NULL]

--parseaddr(testuser at cannibals.org)
rewrite: ruleset canonify           input: testuser @ cannibals . org
rewrite: ruleset Canonify2          input: testuser < @ cannibals . 
org >
map_lookup(host, cannibals.org) => host_map_lookup(cannibals.org) => 
map_rewrite(cannibals.org), av =
	cannibals.org
map_rewrite => cannibals.org.
FOUND cannibals.org
cannibals.org. (0)
rewrite: ruleset Canonify2        returns: testuser < @ cannibals . org 
. >
rewrite: ruleset canonify         returns: testuser < @ cannibals . org 
. >
rewrite: ruleset parse              input: testuser < @ cannibals . org 
. >
rewrite: ruleset Parse0             input: testuser < @ cannibals . org 
. >
rewrite: ruleset Parse0           returns: testuser < @ cannibals . org 
. >
rewrite: ruleset Parse1             input: testuser < @ cannibals . org 
. >
rewrite: ruleset MailerToTriple     input: < > testuser < @ cannibals . 
org . >
rewrite: ruleset MailerToTriple   returns: testuser < @ cannibals . org 
. >
rewrite: ruleset Parse1           returns: $# esmtp $@ cannibals . org 
. $: testuser < @ cannibals . org . >
rewrite: ruleset parse            returns: $# esmtp $@ cannibals . org 
. $: testuser < @ cannibals . org . >
rewrite: ruleset 2                  input: testuser < @ cannibals . org 
. >
rewrite: ruleset 2                returns: testuser < @ cannibals . org 
. >
rewrite: ruleset EnvToSMTP          input: testuser < @ cannibals . org 
. >
rewrite: ruleset PseudoToReal       input: testuser < @ cannibals . org 
. >
rewrite: ruleset PseudoToReal     returns: testuser < @ cannibals . org 
. >
rewrite: ruleset MasqSMTP           input: testuser < @ cannibals . org 
. >
rewrite: ruleset MasqSMTP         returns: testuser < @ cannibals . org 
. >
rewrite: ruleset EnvToSMTP        returns: testuser < @ cannibals . org 
. >
rewrite: ruleset final              input: testuser < @ cannibals . org 
. >
rewrite: ruleset final            returns: testuser @ cannibals . org
parseaddr-->0x811b2b0=testuser at cannibals.org:
	mailer 5 (esmtp), host `cannibals.org.'
	user `testuser at cannibals.org', ruser `<null>'
	state=OK, next=0x0, alias 0x0, uid 0, gid 0
	flags=180<QPINGONFAILURE,QPINGONDELAY>
	owner=(none), home="(none)", fullname="(none)"
	orcpt="(none)", statmta=(none), status=(none)
	finalrcpt="(none)"
	rstatus="(none)"
	statdate=(none)

recipient (0): 0x811b2b0=testuser at cannibals.org:
	mailer 5 (esmtp), host `cannibals.org.'
	user `testuser at cannibals.org', ruser `<null>'
	state=OK, next=0x0, alias 0x0, uid 0, gid 0
	flags=182<QPRIMARY,QPINGONFAILURE,QPINGONDELAY>
	owner=(none), home="(none)", fullname="(none)"
	orcpt="(none)", statmta=(none), status=(none)
	finalrcpt="(none)"
	rstatus="(none)"
	statdate=(none)
maplocaluser: 0x811b2b0=testuser at cannibals.org:
	mailer 5 (esmtp), host `cannibals.org.'
	user `testuser at cannibals.org', ruser `<null>'
	state=OK, next=0x0, alias 0x0, uid 0, gid 0
	flags=182<QPRIMARY,QPINGONFAILURE,QPINGONDELAY>
	owner=(none), home="(none)", fullname="(none)"
	orcpt="(none)", statmta=(none), status=(none)
	finalrcpt="RFC822; testuser at cannibals.org"
	rstatus="(none)"
	statdate=(none)
rewrite: ruleset localaddr          input: testuser @ cannibals . org
rewrite: ruleset Local_localaddr    input: testuser @ cannibals . org
rewrite: ruleset ParseRecipient     input: testuser @ cannibals . org
rewrite: ruleset CanonAddr          input: testuser @ cannibals . org
rewrite: ruleset canonify           input: testuser @ cannibals . org
rewrite: ruleset Canonify2          input: testuser < @ cannibals . 
org >
map_lookup(host, cannibals.org) => host_map_lookup(cannibals.org) => 
CACHE cannibals.org
map_rewrite(cannibals.org), av =
	cannibals.org
map_rewrite => cannibals.org.
cannibals.org. (0)
rewrite: ruleset Canonify2        returns: testuser < @ cannibals . org 
. >
rewrite: ruleset canonify         returns: testuser < @ cannibals . org 
. >
rewrite: ruleset Parse0             input: testuser < @ cannibals . org 
. >
rewrite: ruleset Parse0           returns: testuser < @ cannibals . org 
. >
rewrite: ruleset CanonAddr        returns: testuser < @ cannibals . org 
. >
map_lookup(dequote, testuser) => NOT FOUND (0)
rewrite: ruleset ParseRecipient   returns: testuser < @ cannibals . 
org >
rewrite: ruleset Local_localaddr  returns: $# relay $@ [ localhost ] $: 
testuser < @ cannibals . org >
rewrite: ruleset localaddr        returns: $# relay $@ [ localhost ] $: 
testuser < @ cannibals . org >
rewrite: ruleset 2                  input: testuser < @ cannibals . 
org >
rewrite: ruleset 2                returns: testuser < @ cannibals . 
org >
rewrite: ruleset MasqSMTP           input: testuser < @ cannibals . 
org >
rewrite: ruleset MasqSMTP         returns: testuser < @ cannibals . 
org >
rewrite: ruleset final              input: testuser < @ cannibals . 
org >
rewrite: ruleset final            returns: testuser @ cannibals . org

recipient (1): 0x811b3b4=testuser at cannibals.org:
	mailer 8 (relay), host `[localhost]'
	user `testuser at cannibals.org', ruser `<null>'
	state=OK, next=0x0, alias 0x811b2b0, uid 0, gid 0
	flags=182<QPRIMARY,QPINGONFAILURE,QPINGONDELAY>
	owner=(none), home="(none)", fullname="(none)"
	orcpt="(none)", statmta=(none), status=(none)
	finalrcpt="RFC822; testuser at cannibals.org"
	rstatus="(none)"
	statdate=(none)
----- collected header -----
Return-Path: <$g>
Received: ($?sfrom $s $.$?_($?s$|from 
$.$_)\n\t$.$?{auth_type}(authenticated$?{auth_ssf} 
bits=${auth_ssf}$.)\n\t$.by $j ($v/$Z)$?r with $r$. id 
$i$?{tls_version}\n\t(version=${tls_version} cipher=${cipher} 
bits=${cipher_bits} verify=${verify})$.$?u\n\tfor $u; $|;\n\t$.$b) 
(from root at localhost)\n\tby donner.cannibals.org (8.12.5/8.12.5/Submit) 
id h4M0VPlP001254\n\tfor testuser at cannibals.org; Wed, 21 May 2003 
19:31:25 -0500
Resent-Date: ($a) Wed, 21 May 2003 19:31:25 -0500
Date: ($a) Wed, 21 May 2003 19:31:25 -0500
Resent-From: ($?x$x <$g>$|$g$.) crackaddr(root <root>)
crackaddr=>`root <$g>'
root <root>
From: ($?x$x <$g>$|$g$.) crackaddr(root <root>)
crackaddr=>`root <$g>'
root <root>
Full-Name: ($x) root
Resent-Message-Id: (<$t.$i@$j>) 
<200305220031.h4M0VPlP001254 at donner.cannibals.org>
Message-Id: (<$t.$i@$j>) 
<200305220031.h4M0VPlP001254 at donner.cannibals.org>
----------------------------
 From person = "root"
getla(): 0.16

===== SENDALL: mode i, id h4M0VPlP001254, e_from 0x80de270=root:
	mailer 3 (local), host `'
	user `root', ruser `<null>'
	state=SENDER, next=0x0, alias 0x0, uid 0, gid 0
	flags=181<QGOODUID,QPINGONFAILURE,QPINGONDELAY>
	owner=(none), home="/root", fullname="(none)"
	orcpt="(none)", statmta=(none), status=(none)
	finalrcpt="(none)"
	rstatus="(none)"
	statdate=(none)
	e_flags = 4205001<OLDSTYLE,GLOBALERRS,METOO,HAS_DF,SPLIT>
sendqueue:
0x811b3b4=testuser at cannibals.org:
	mailer 8 (relay), host `[localhost]'
	user `testuser at cannibals.org', ruser `<null>'
	state=OK, next=0x811b2b0, alias 0x811b2b0, uid 0, gid 0
	flags=80000182<QPRIMARY,QPINGONFAILURE,QPINGONDELAY,QRCPTOK>
	owner=(none), home="(none)", fullname="(none)"
	orcpt="(none)", statmta=(none), status=(none)
	finalrcpt="RFC822; testuser at cannibals.org"
	rstatus="(none)"
	statdate=(none)
0x811b2b0=testuser at cannibals.org:
	mailer 5 (esmtp), host `cannibals.org.'
	user `testuser at cannibals.org', ruser `<null>'
	state=REPLACED, next=0x0, alias 0x0, uid 0, gid 0
	flags=80000182<QPRIMARY,QPINGONFAILURE,QPINGONDELAY,QRCPTOK>
	owner=(none), home="(none)", fullname="(none)"
	orcpt="(none)", statmta=(none), status=(none)
	finalrcpt="RFC822; testuser at cannibals.org"
	rstatus="(none)"
	statdate=(none)

>>>>> queueing /var/spool/clientmqueue/./qfh4M0VPlP001254 >>>>>
queueing 0x811b3b4=testuser at cannibals.org:
	mailer 8 (relay), host `[localhost]'
	user `testuser at cannibals.org', ruser `<null>'
	state=OK, next=0x811b2b0, alias 0x811b2b0, uid 0, gid 0
	flags=80000182<QPRIMARY,QPINGONFAILURE,QPINGONDELAY,QRCPTOK>
	owner=(none), home="(none)", fullname="(none)"
	orcpt="(none)", statmta=(none), status=(none)
	finalrcpt="RFC822; testuser at cannibals.org"
	rstatus="(none)"
	statdate=(none)
remotename(root <root>)
<<<<< done queueing h4M0VPlP001254 <<<<<


--deliver, id=h4M0VPlP001254, mailer=relay, host=`[localhost]', first 
user=`testuser at cannibals.org'
remotename(root)
rewrite: ruleset canonify           input: root
rewrite: ruleset Canonify2          input: root
rewrite: ruleset Canonify2        returns: root
rewrite: ruleset canonify         returns: root
rewrite: ruleset 1                  input: root
rewrite: ruleset 1                returns: root
rewrite: ruleset EnvFromSMTP        input: root
rewrite: ruleset PseudoToReal       input: root
rewrite: ruleset PseudoToReal     returns: root
rewrite: ruleset MasqSMTP           input: root
rewrite: ruleset MasqSMTP         returns: root < @ *LOCAL* >
rewrite: ruleset MasqEnv            input: root < @ *LOCAL* >
rewrite: ruleset MasqEnv          returns: root < @ donner . cannibals 
. org . >
rewrite: ruleset EnvFromSMTP      returns: root < @ donner . cannibals 
. org . >
rewrite: ruleset final              input: root < @ donner . cannibals 
. org . >
rewrite: ruleset final            returns: root @ donner . cannibals . 
org
remotename => `root at donner.cannibals.org'
hostsignature([localhost]) = localhost.cannibals.org.

send to 0x811b3b4=testuser at cannibals.org:
	mailer 8 (relay), host `[localhost]'
	user `testuser at cannibals.org', ruser `<null>'
	state=OK, next=0x811b2b0, alias 0x811b2b0, uid 0, gid 0
	flags=80000182<QPRIMARY,QPINGONFAILURE,QPINGONDELAY,QRCPTOK>
	owner=(none), home="(none)", fullname="(none)"
	orcpt="(none)", statmta=(none), status=(none)
	finalrcpt="RFC822; testuser at cannibals.org"
	rstatus="(none)"
	statdate=(none)
checkcompat(to=testuser at cannibals.org, from=root)
openmailer: TCP [localhost]
makeconnection (localhost.cannibals.org. [192.168.1.100].25 (2))
makeconnection: fd=6
Connect failed (Connection refused by localhost.cannibals.org.)
openmailer: makeconnection => stat=75, errno=111
openmailer: MCI at 0x8125274: flags=0,
	errno=111, herrno=1, exitstat=75, state=0, pid=0,
	maxsize=0, phase=initial connection, mailer=relay,
	status=4.4.1, rstatus=(null),
	host=localhost.cannibals.org., lastuse=Wed May 21 19:32:06 2003

dropenvelope 0x80de260: id=h4M0VPlP001254, 
flags=4205003<OLDSTYLE,INQUEUE,GLOBALERRS,METOO,HAS_DF,SPLIT>

>>>>> queueing /var/spool/clientmqueue/./qfh4M0VPlP001254 >>>>>
queueing 0x811b3b4=testuser at cannibals.org:
	mailer 8 (relay), host `[localhost]'
	user `testuser at cannibals.org', ruser `<null>'
	state=QUEUEUP, next=0x811b2b0, alias 0x811b2b0, uid 0, gid 0
	flags=80000182<QPRIMARY,QPINGONFAILURE,QPINGONDELAY,QRCPTOK>
	owner=(none), home="(none)", fullname="(none)"
	orcpt="(none)", statmta=localhost.cannibals.org., status=4.4.1
	finalrcpt="RFC822; testuser at cannibals.org"
	rstatus="(none)"
	statdate=Wed May 21 19:32:06 2003

remotename(root <root>)
<<<<< done queueing h4M0VPlP001254 <<<<<


====finis: stat 75 e_id=NOQUEUE 
e_flags=4005003<OLDSTYLE,INQUEUE,GLOBALERRS,METOO,SPLIT>




More information about the Info-cyrus mailing list