javax.courrier.AuthenticationFailedException est levée lors de l'envoi d'e-mails en java
Je suis débutant en java et je veux envoyer un e-mail en java, pour cela j'utilise ce code en Java. Mais mon code lance une exception, et j'ai besoin d'un heads-up why {
C'est la trace de pile de l'exception:
javax.mail.AuthenticationFailedException: 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbsNX
534-5.7.14 No6jJbDc4l7fZ_WLdBD0sNHIIp_nLvplRMm0bYFBnZBF_XOyVvNSdd1FenDZJPwBTFQyRH
534-5.7.14 lriPK3myMm-dXkW3zK0-6XpO7BzI8hfRcByG1k7YiVzXlddTvs7QhjtgCWNcrzMBuPhoof
534-5.7.14 GjME2TgYzXJVHz5MV98nRnr_kq-kP7RmgOtX3IQHLwM5E8QGBC9-2THVQr_Ch_U0-1nZsc
534-5.7.14 yoPuNEw> Please log in via your web browser and then try again.
534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 wr6sm26888533wjc.24 - gsmtp
at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:892)
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:814)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:728)
at javax.mail.Service.connect(Service.java:364)
at javax.mail.Service.connect(Service.java:245)
at SendEmail.sendFromGMail(SendEmail.java:50)
at SendEmail.main(SendEmail.java:18)
sent
Ceci est mon code
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class SendEmail {
private static String USER_NAME = "me";
private static String PASSWORD = "xyz";
private static String RECIPIENT = "[email protected]";
public static void main(String[] args) {
String from = USER_NAME;
String pass = PASSWORD;
String[] to = { RECIPIENT };
String subject = "Java send mail example";
String body = "Welcome to JavaMail!";
sendFromGMail(from, pass, to, subject, body);
System.out.println("sent");
}
private static void sendFromGMail(String from, String pass, String[] to, String subject, String body) {
Properties props = System.getProperties();
String host = "smtp.gmail.com";
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.user", from);
props.put("mail.smtp.password", pass);
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props);
MimeMessage message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(from));
InternetAddress[] toAddress = new InternetAddress[to.length];
for( int i = 0; i < to.length; i++ ) {
toAddress[i] = new InternetAddress(to[i]);
}
for( int i = 0; i < toAddress.length; i++) {
message.addRecipient(Message.RecipientType.TO, toAddress[i]);
}
message.setSubject(subject);
message.setText(body);
Transport transport = session.getTransport("smtp");
transport.connect(host, from, pass);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
catch (AddressException ae) {
ae.printStackTrace();
}
catch (MessagingException me) {
me.printStackTrace();
}
}
}
5 answers
J'ai eu le même problème! Google empêche l'accès aux applications moins sécurisées.
Voici comment je l'ai résolu:
- Connectez-vous depuis votre navigateur à ce compte de messagerie.
- Aller à https://www.google.com/settings/security/lesssecureapps
- , Vous verrez désactiver ou Activer. Cliquez surActivez , puis réessayez votre code. Il devrait maintenant fonctionner.
- Assurez-vous que les applications moins sécurisées sont ACTIVÉES https://www.google.com/settings/security/lesssecureapps
- Autoriser chaque application à envoyer un e-mail
Aller à https://accounts.google.com/b/0/DisplayUnlockCaptcha
et cliquez sur Continuer.
- Cette fois: vous pouvez utiliser votre application pour envoyer des e-mails et toutes les opérations sont autorisées.
Plus liens:
https://support.google.com/accounts/answer/6010255
https://productforums.google.com/forum/#! topic/gmail / 9KCgzXY4G_c
Je suis également confronté au même problème.
Google ne vous donne pas d'accès direct au port ouvert. Si vous utilisez votre compte Google pour l'envoi de courrier, veuillez activer le paramètre en cliquant sur ce lien. google allez ici: https://www.google.com/settings/security/lesssecureapps Bonne chance espérons que cela fonctionnera pour vous aussi.
- autoriser les applications moins sécurisées à partir des paramètres de votre compte Google https://www.google.com/settings/security/lesssecureapps
- ouvrez votre gmail > goto paramètres > IMAP / POP paramètres > activer IMAP
- allez à cette URL et activez-la (terminer toutes ces étapes fonctionnera sûrement) https://www.google.com/accounts/DisplayUnlockCaptcha
Guide officiel pour aide
Https://support.google.com/mail/answer/7126229?hl=en-GB&visit_id=637246238859828954-474780158&rd=2
Il ne s'agit pas seulement d'activer les "applications moins sécurisées" à partir de la page d'administration Google.
Le correctif ci-dessus n'a pas résolu le problème pour moi. J'ai contacté Google et ils m'ont demandé d'ajouter quelques enregistrements TXT à ma liste DNS. Vous aurez besoin d'une clé DKIM que vous devrez générer à partir des paramètres d'administration G Suite pour gmail.