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();
        }
    }
}
 69
Author: e-sushi, 2014-08-16

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:

 130
Author: Sazib, 2019-03-18 15:37:35
  1. Assurez-vous que les applications moins sécurisées sont ACTIVÉES https://www.google.com/settings/security/lesssecureapps entrez la description de l'image ici
  2. Autoriser chaque application à envoyer un e-mail Aller à https://accounts.google.com/b/0/DisplayUnlockCaptcha et cliquez sur Continuer. entrez la description de l'image ici
    entrez la description de l'image ici
  3. 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

 99
Author: biniam, 2016-08-31 20:51:40

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.

 1
Author: Sarfraz Khan, 2016-05-27 18:48:29
  1. autoriser les applications moins sécurisées à partir des paramètres de votre compte Google https://www.google.com/settings/security/lesssecureapps
  2. ouvrez votre gmail > goto paramètres > IMAP / POP paramètres > activer IMAP
  3. 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

 1
Author: SuperUser Sudo, 2020-05-09 12:32:59

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.

 -1
Author: Srini Kancharla, 2017-09-06 20:56:00