1) использовать выходные данные отладки:
session.setDebug(true);
2) SMTP-сервер hotmail запускает не-ssl-соединение через порт 25 или 587 и использует starttls после первоначального подключения; таким образом удалите строки
props.put ("mail.smtp.socketFactory.port", "587");
props.put ("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
3) минимальное количество настроек:
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.live.com");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
предполагается, что порт 25, в противном случае добавьте props.put ("mail.smtp.port", "587");
4) но выглядит еще лучше:
...
props.put("mail.smtp.starttls.enable", "true");
Session session = Session.getDefaultInstance(props);
Transport trans = session.getTransport("smtp");
trans.connect("smtp.live.com", 25, "user", "pass");
теперь вы подключены, используйте методы Транспорт