in reply to MIME::Lite

Everything looks pretty reasonable, so you should probably check the return values (i.e. $!) of the functions as you call them. At the very least do:

$msg->send or die "couldn't send!!!";

Then, when you know which function call fails, the answer may be immediately obvious, or at the very least the monks will have a little more to go on. (if all the calls succeed i would say take a good look at your mail server)

Good Luck,