[comp.mail.sendmail] Sendmail -v mode address testing problems

grants@syacus.acus.oz (Grant Sayer) (08/03/90)

When performing some testing on sendmail handling of addresses 
the following error message occurs:
	"buildaddr: no user"
Sendmail has been invoked as /usr/lib/sendmail -v /dev/null {address}

This problem only occurs when the address matches one particular rewrite
rule in S0.  The address is something like grants@mhs.donald and matches
a rule:

R$*<@$=C>$*		$#bmailer$@$2:$1

The F macro defines a class of hosts in the file /etc/bhosts, which contains
the name 'mhs' (from address above).  When the rules are tested in address
test mode (sendmail -bt) the address resolves to the correct mailer as shown
by the output below:

ADDRESS TEST MODE
Enter <ruleset> <address>
0 grants@mhs.donald
rewrite: ruleset  3   input: "grants" "@" "mhs" "." "donald"
rewrite: ruleset  3 returns: "grants" "<" "@" "mhs" "." "donald" ">"
rewrite: ruleset  0   input: "grants" "<" "@" "mhs" "." "donald" ">"
rewrite: ruleset  3   input: "grants" "@" "mhs" "." "donald"
rewrite: ruleset  3 returns: "grants" "<" "@" "mhs" "." "donald" ">"
rewrite: ruleset  0 returns: "^V" "btos" "^W" "mhs" "^X" "grants"
 
Can anyone offer any suggestions as to why the error 'buildaddr: no user'
occurs ?

Thanks In Advance
Grant Sayer                   ACSnet : grants@syacus.acus.oz
                            Internet : grants@syacus.acus.OZ.AU
                                UUCP : uunet!munnari!syacus.acus.oz.au!grants

mills@ccu.umanitoba.ca (Gary Mills) (08/07/90)

grants@syacus.acus.oz (Grant Sayer) writes:

>	"buildaddr: no user"

Ah, I have seen this before.

>R$*<@$=C>$*		$#bmailer$@$2:$1

You need a `$', like this:
R$*<@$=C>$*		$#bmailer$@$2$:$1

-- 
-Gary Mills-             -University of Manitoba-             -Winnipeg-

andy@jhunix.HCF.JHU.EDU (Andy S Poling) (08/08/90)

In article <923@syacus.acus.oz> grants@syacus.acus.oz (Grant Sayer) writes:
>When performing some testing on sendmail handling of addresses 
>the following error message occurs:
>	"buildaddr: no user"
>Sendmail has been invoked as /usr/lib/sendmail -v /dev/null {address}
>
>This problem only occurs when the address matches one particular rewrite
>rule in S0.  The address is something like grants@mhs.donald and matches
>a rule:
>
>R$*<@$=C>$*		$#bmailer$@$2:$1
[...]
>Can anyone offer any suggestions as to why the error 'buildaddr: no user'
>occurs ?

The error message is correct.  When you are resolving to a mailer, you have
to provide the following:

	a mailer - 		marked by $#
	an optional hostname -	marked by $@
	a username -		marked by $:

Looking at your rule's RHS (wih optional spaces added for readability) shows:
	$# bmailer $@ $2:$1
which breaks out into:
	bmailer		the mailer
	$2:$1		the hostname?

But where is the username?  Perhaps you meant for the RHS to read:
	$# bmailer $@ $2 $: $1

Now you know why I use the optional spaces in virtually every rewriting rule
in my cf files - it makes problems much easier to find.

Using the optional spaces also make lines containing $@, $:, and $> easier
to read.  Remember the rules:

1) the LHS, RHS and comments must be seperated by at least one tab character
2) there may be embedded spaces in the LHS, RHS, and comments
3) tabs or spaces begin continuation lines
4) blank lines and lines beginning with a pound sign ("#") are comments

IMHO, alot of people might be less intimidated by sendmail.cf files if they
contained more spaces.