JavaMail no funciona en Amazon EC2

PROBLEMA:

Estoy intentando usar JavaMail para enviar correos electrónicos desde un servidor EC2 Ubuntu 12.04 pero no funciona.

FONDO:

Tengo la intención de enviar un correo generado automáticamente desde un servidor Tomcat a unos pocos miembros del equipo. Utilicé JavaMail 1.4.7 para esta tarea y heexitosamente Lo probé en una instalación local de Tomcat (en una computadora portátil personal).

El siguiente paso fue cuando coloqué este módulo en un servidor EC2, pero comenzó a fallar con el siguiente error:

ERROR:

DEBUG SMTP: error de inicio de sesión automático javax.mail.AuthenticationFailedException: 535-5.7.1 Nombre de usuario y contraseña no aceptados. Obtenga más información en 535 5.7.1http://support.google.com/mail/bin/answer.py?answer=14257 j13sm1603739pat.17 - gsmtp

at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:826)
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:761)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
Fragmento de código:
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
Properties props = new Properties();
props.put("mail.smtps.host","smtp.gmail.com");
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtps.auth", "true");
props.put("mail.smtp.debug", "true");
props.put("mail.smtp.port", 465);
props.put("mail.smtp.socketFactory.port", 465);
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.put("mail.smtp.ssl.enable", true);

Session session = Session.getDefaultInstance(props);
session.setDebug(debug);

Message msg = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress("[email protected]");
msg.setFrom(addressFrom);

InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++) {
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
msg.setSubject("test subject");
msg.setContent("test message", "text/plain");
Transport tp = session.getTransport("smtp");
tp.connect(SMTP_HOST_NAME, "[email protected]", "dummypassword");
tp.sendMessage(msg, addressTo);
tp.close();
INFORMACIÓN ADICIONAL:He añadido permisos para todos los puertos en la instancia de EC2. Además, he agregado permisos explícitos para los puertos 465 (SMTPS) y 25 (SMTP).He comprobado la corrección del nombre de usuario y la contraseña que se proporcionan en el código.

Respuestas a la pregunta(1)

Su respuesta a la pregunta