Отсутствуют различные атрибуты (посмотрите, чего у вас нет):
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.put("mail.smtp.socketFactory.port", "465");
По сути, если вы хотите получить безопасный доступ к SMTP, POP3, IMAP, вы должны установить их SocketFactory для их соответствующих почтовых протоколов.
Не забывайте, что GMail аутентифицируется на защищенном уровне (следовательно, почему для mail.smtp.socketFactory.fallback
установлено значение false).
См. Пример по Защищенная JavaMail по JavaWorld .