javax.mail.AuthenticationFailedException é lançado ao enviar e-mail em java

Sou iniciante em java e quero enviar um email em java, para isso estou usando este código em Java. Mas meu código está lançando uma exceção, e eu preciso de um heads up por que …

Este é o rastreamento de pilha de exceção:

javax.mail.AuthenticationFailedException: 534-5.7.14  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 

Este é o meu código

 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 = "abc@seecs.edu.pk"; 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(); } } } 

Eu tive o mesmo problema !!

Isto é como eu resolvi .. google impedi-lo por motivos de segurança ..

Go Login do seu navegador a partir desse e-mail .. eu tive problema com o google se o google go aqui: https://www.google.com/settings/security/lesssecureapps

você verá desligar ou ligar. Clique em “Ativar”

Então tente seu código novamente, ele funcionará, funcionou para mim

  1. Certifique-se de que os aplicativos menos seguros estejam LIGADOS em https://www.google.com/settings/security/lesssecureapps insira a descrição da imagem aqui
  2. Permitir que cada aplicativo envie e-mails Vá para https://accounts.google.com/b/0/DisplayUnlockCaptcha e clique em Continuar. insira a descrição da imagem aqui
    insira a descrição da imagem aqui
  3. Desta vez: você pode usar seu aplicativo para enviar e-mail e todas as operações são permitidas.

Mais links:
https://support.google.com/accounts/answer/6010255 https://productforums.google.com/forum/#!topic/gmail/9KCgzXY4G_c

Eu também estou enfrentando o mesmo problema.

O Google não oferece access direto a portas abertas. Se você estiver usando sua conta do Google para o envio de e-mails, ative a configuração clicando neste link. google go here: https://www.google.com/settings/security/lesssecureapps Boa sorte espero que funcione para você também.

Não se trata apenas de ativar os “aplicativos menos seguros” da página de administração do Google.

A correção acima não resolveu o problema para mim. Entrei em contato com o Google e eles me pediram para adicionar alguns registros TXT à minha lista de DNS. Você precisará de uma chave DKIM que precisará gerar nas configurações de administrador do G Suite para o Gmail.