( echo -n "X-Face:" ; cat $HOME/.face ; echo "" ) > $TMP
the echo that is executed is whatever echo the user's shell
provides. For bash users, "-n" is just something to print, not the
usual semantics of surpressing the newline.
So, the fix is this:
echo -n "X-Face:" > $TMP; cat $HOME/.face >> $TMP ; echo "" >> $TMP
which also happens to save three processes, since the two echos
are done as builtins to sh and no subshell is forked off. This
turns out to be a win, I guess.
Apologies for not testing faces.sendmail more.