First things first, if you are going to mention errors, please do include the entire error message as they are usually very helpful. Chances are that the error is generated in an underlying module, such as IO::Socket::INET using warn or die calls and although you can catch them, it is probably not what you want to do.
I assume you are on a windows web server, these usually should have one of the following options that can help you avoid timeouts:
- A windows version of sendmail installed
- A "sendmail alternative" such as blat installed
- A local smtp server which you can use