JavaMail avec Gmail: 535-5.7.1 nom d'utilisateur et le Mot de passe n'est pas acceptée

J'ai cette erreur lorsque j'essaie d'envoyer un mail à l'aide de l'API JavaMail. Je suis sûr que le nom d'utilisateur et mot de passe sont 100% correct. Le compte Gmail dont je me connecte est un ancien compte, parce qu'ils disent qu'il faut du temps pour elle de travailler avec de nouveaux comptes.

DEBUG SMTP RCVD: 535-5.7.1 nom d'utilisateur et le Mot de passe n'est pas acceptée. Pour en savoir plus 

535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 x35sm3011668 
la fmh.6 

javax.mail.SendFailedException: l'Envoi a échoué; 
nested exception est la suivante: 
javax.mail.AuthenticationFailedException 
au javax.mail.De Transport.send0(Transports en commun.java:218) 
au javax.mail.De Transport.envoyer(de Transport.java:80) 
au Principal.(Principale.java:41) 
au Principal.principale(Main.java:51) 

et c'est mon code:

import javax.mail.*; 
import javax.mail.internet.*; 
importer java.util.*; 

public class main 
{ 
Chaîne d_email = "[email protected]", 
d_password = "pass", 
d_host = "smtp.gmail.com", 
d_port = "465", 
m_to = "[email protected]", 
m_subject = "Test", 
m_text = "courrier de test."; 

public Principal() 
{ 
Properties props = new Properties(); 
accessoires de jeu.put("mail.smtp.utilisateur", d_email); 
accessoires de jeu.put("mail.smtp.d'accueil", d_host); 
accessoires de jeu.put("mail.smtp.port", d_port); 
accessoires de jeu.put("mail.smtp.starttls.activer","true"); 
accessoires de jeu.put("mail.smtp.auth", "true"); 
accessoires de jeu.put("mail.smtp.debug", "true"); 
accessoires de jeu.put("mail.smtp.socketFactory.port", d_port); 
accessoires de jeu.put("mail.smtp.socketFactory.class", "javax.net.le protocole ssl.SSLSocketFactory"); 
accessoires de jeu.put("mail.smtp.socketFactory.de secours", "false"); 

SecurityManager de sécurité = Système.getSecurityManager(); 

essayez 
{ 
Authentificateur auth = new SMTPAuthenticator(); 
Session session = Session.getInstance(accessoires, auth); 
session.setDebug(true); 
MimeMessage msg = new MimeMessage(session); 
msg.setText(m_text); 
msg.setSubject(m_subject); 
msg.setFrom(nouveau InternetAddress(d_email)); 
msg.addRecipient(Message.RecipientType.POUR les nouveaux InternetAddress(m_to)); 
De Transport.send(msg); 
} 
catch (Exception mex) 
{ 
mex.printStackTrace(); 
} 
} 

public static void main(String[] args) 
{ 
Principal bla = new Main(); 
} 

privé de classe SMTPAuthenticator extends javax.mail.Authentificateur 
{ 
public PasswordAuthentication getPasswordAuthentication() 
{ 
de retour de nouvelle PasswordAuthentication(d_email, d_password); 
} 
} 
} 
Le base64 de la valeur de votre mot de passe est visible dans le post original. Je l'ai enlevé il y a une heure, mais il est encore visible dans l'historique des modifications. Je vous recommande fortement de changer votre mot de passe Gmail avant un hacker malveillant peut casser votre compte Gmail.

OriginalL'auteur simplyblue | 2010-06-03