JavaMail funktioniert nicht in Amazon EC2

PROBLEM:

Ich versuche, mit JavaMail E-Mails von einem EC2 Ubuntu 12.04-Server zu senden, aber es funktioniert nicht.

HINTERGRUND:

Ich beabsichtige, eine automatisch generierte E-Mail von einem Tomcat-Server an einige Teammitglieder zu senden. Ich habe JavaMail 1.4.7 für diese Aufgabe verwendet und ich habeerfolgreich versuchte es auf einer lokalen Installation von Tomcat (auf einem persönlichen Laptop).

Im nächsten Schritt habe ich dieses Modul auf einen EC2-Server gestellt, aber es schlug mit dem folgenden Fehler fehl:

ERROR:

DEBUG SMTP: AUTH LOGIN fehlgeschlagen javax.mail.AuthenticationFailedException: 535-5.7.1 Benutzername und Passwort nicht akzeptiert. Weitere Informationen finden Sie unter 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)
Code-Auszug:
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();
ZUSÄTZLICHE INFORMATION:Ich habe Berechtigungen für alle Ports der EC2-Instanz hinzugefügt. Außerdem habe ich explizite Berechtigungen für die Ports 465 (SMTPS) und 25 (SMTP) hinzugefügt.Ich habe die Richtigkeit des im Code angegebenen Benutzernamens und Passworts überprüft.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage