in reply to Error message not showing up from Net::SMTP

What do you mean by "the failure is silent"? Your output clearly shows auth communicated the failure.

Do you mean the error isn't in $!? $!'s content are meaningless unless a system call returned an error. You didn't make any system calls, much less one that returned an error. Perhaps you want $mail->code and/or $mail->message? (Remember, Net::SMTP objects are descendant of Net::Cmd.)