The exception shows that it's trying to use "localhost" for sending. That's because, unlike the first piece of code, it uses the SMTP host specified in the Properties you use to get the Session. You probably didn't specify any, so it defaults to local host.
You can solve this two ways:
1) Specify the SMTP host with key "mail.smtp.host". The authentication must be done through keys "mail.smtp.user" and "mail.smtp.pass" or an Authenticator.
2) Get a Transport object as in your first piece of code, then first call saveChanges on the message and then use the Transport's non-static sendMessage method:
Also, you don't send emails through Outlook this way. Outlook is the client written by Microsoft. Their server software is called Exchange.
Rob,
Thank you for the reply. It was very helpful. Ive applied the changes you suggested and unfortunately something else came up, which I am not sure but might me harder to debug!
But that is specifically one of the entries in the JavaMail FAQ. I strongly recommend you read this document -- not just the part about your current problem, but all of it. That should give you a better insight into how Internet e-mail works.
Then your google keywords are "javamail faq". If you can't read the link you get from your web search, then I suggest you go to your network manager and complain.