Well, hard to guess, what your problem is. When using $smtp->mail() and $smtp->to Net::SMTP_auth sets the envelope data. Those methods have no influence on the contents of your mail. So, did the your mail have To: and From: headers? They are not auto-generated. That's the reason why I can auth myself with a vaild username (envelope from) and still write mail as billyboy@microsleuth.net (from). In other words: don't pipe your mailtext after successfuil auth, you must construct a mail with body and headers and feed that.
Reread the POD and see the example line:
$smtp->datasend("To: postmaster\n");
BTW: Net::SMTP_auth is kind of obsolete now. Graham Barr's Net::SMTP now has auth support. HTH, alex.